马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
结构题第4节的内容,按照自己的理解先写了下,不清楚为什么会这样,感觉和结构体变量声明有关,但不知道为什么。代码如下:#include <stdio.h>
void main()
{
struct student //定义结构体结构
{
int num; //学号
int score; //分数
struct student *next; //存放下一个节点地址的指针
};
struct student *head; //声明可以存放student结构体地址的指针
int i, k;
for(i=0; 1; i++)
{
printf("请输入学号: ");
scanf("%d",&k); //将学号赋值给k
if(k==0?0:1) //测试k是否是0
{ //k为真即k不是0
struct student stu[i]; //声明结构体student变量stu[i],i为第i次循环
stu[i].num = k; //将k的值(学号)赋值给学号存放单元
if(i == 0) //判断是否第1次
{
head = &stu[i]; //第一次则将stu[0]的地址赋予head
stu[i].next = NULL;//将stu[0]的next的值赋NULL
}
else //不是第一次则说明已经存在结构体变量
{
stu[i-1].next = &stu[i];//将上一个变量的next存放stu[i]的地址
stu[i].next = NULL; //使next的值为NULL
}
}
else //如果输入的学号是0
{
printf("\n");
for( ; i; i--) //如果i是0即第一次就输入0,则直接退出输出,i不是0则按照i的次数输出链表
{
printf("学号为%d的学生成绩为%d\n",head->num,head->score);
head = head->next;
}
break; //i是0并第一次就输入0则退出循环,结束程序。
}
printf("请输入分数: ");//接受完学号,开始接受分数
scanf("%d",&stu[i].score);
}
}
报以下错误D:\Backup\我的文档\c\0.c(20) : error C2057: expected constant expression
D:\Backup\我的文档\c\0.c(20) : error C2466: cannot allocate an array of constant size 0
D:\Backup\我的文档\c\0.c(20) : error C2133: 'stu' : unknown size
D:\Backup\我的文档\c\0.c(44) : error C2065: 'stu' : undeclared identifier
D:\Backup\我的文档\c\0.c(44) : error C2109: subscript requires array or pointer type
D:\Backup\我的文档\c\0.c(44) : error C2224: left of '.score' must have struct/union type
|