英文:
List of lists of series of number in C
问题
struct lista // lista means list
{
char nome[30]; // nome means name
struct serie *serie;
struct lista *prossima; // prossima means next
};
struct serie
{
int n;
struct serie *prossim;
};
struct lista *inizio = NULL; // inizio means start
struct lista *list = NULL;
struct lista *precedente = NULL; // precedente means previous
struct list_serie *start = NULL;
struct list_serie *seri = NULL;
struct list_serie *previous = NULL;
list = inizio;
while (list != NULL)
{
struct lista *pros = list->prossima;
free(list);
list = pros;
}
list = NULL;
请注意,你在代码中有一处错误。在声明 struct list_serie
的时候应该使用 struct serie
。
英文:
I am doing a program that let's me take in input a dim number of series, any of them has got a name.
This is how I coded them:
struct lista // lista means list
{
    char nome[30]; // nome means name
    struct serie *serie;
    struct lista *prossima; // prossima means next
};
struct serie
{
    int n;
    struct serie *prossim;
};
I assigned this structs to make lista
work in main()
this way:
struct lista *inizio = NULL; // inizio means start
struct lista *list = NULL;
struct lista *precedente = NULL; // precedente means previous
How do I create struct to access struct serie *serie
of list?
I thought of doing it this way:
struct list.serie start = NULL;
struct list.serie seri = NULL;
struct list.serie previous = NULL;
but it doesn't work.
How should I type it?
And how do I free memory?
with the struct list I do
list = inizio;
while (list != NULL)
{
    struct lista *pros = list->prossima;
    free(list);
    list = pros;
}
list = NULL;
and how do I free serie list?
I tried as in the previous example how I created serie structs by typing:
struct list.serie start;
etc... but it doesn't compile because it says Expected an identifier
For the deallocation I may apply the same way of how I did with the original list lista
I tried doing it without accessing to struct serie *serie
, so only making the input of the name, so how I utilize lists seems to be OK because I can program a simple list, but a list of lists is the problem.
For anyone that want to see the entire code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct lista
{
char nome[30];
struct serie *serie;
struct lista *prossima;
};
struct serie
{
int n;
struct serie *prossim;
};
int main()
{
int dim;
struct lista *inizio = NULL;
struct lista *list = NULL;
struct lista *precedente = NULL;
printf("How many series do you want to add? ");
scanf("%d", &dim);
for (int i = 0; i < dim; i++)
{
list = malloc(sizeof(struct lista));
printf("Enter the name of the series: ");
scanf("%s", list->nome);
list->prossima = NULL;
struct list.serie start; // THIS IS WHERE I GET THE ERROR
// HOW DO I USE list.serie to create lists?
if (i == 0)
{
inizio = list;
}
else
{
precedente->prossima = list;
}
precedente = list;
}
list = inizio;
while (list != NULL)
{
printf("The name of the series is: %s\n", list->nome);
list = list->prossima;
}
list = inizio;
while (list != NULL)
{
struct lista *pros = list->prossima;
free(list);
list = pros;
}
list = NULL;
return 0;
}
答案1
得分: 3
请显示错误信息以便我们更好地理解问题。
重要注意事项:
- NULL 需要
stdlib.h
头文件 - 访问指针使用
'->'
而不是'.'
serie* serie
不是结构的声明,而是变量。因此不能用作数据类型的替代。
你可以使用 list->serie
访问列表的系列。
struct serie* temp = list->serie;
英文:
Kindly do show the error messages so we can have better understanding of issue.
Important things to note
- NULL needs <stdlib.h> header
- Pointers are accessed with '->' and not '.'
serie* serie
is not a declaration of structure but a variable. So it can't be used instead of datatype
you can access series of list using list->serie
struct serie* temp = list->serie;
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论