【发布时间】:2021-10-29 12:16:04
【问题描述】:
在这个程序中,我想使用结构获取学生信息并打印位置。而在测验部分,只有最好的一个会计入三分之二。现在,当我运行程序时,它不需要任何输入。它只询问学生的数量,然后它终止并且不接受任何其他输入。谁能找出我的问题所在。
struct student_profile
{
char name[100];
int ID[100];
int Final;
int mid;
int attendance;
int assignment;
int quiz1;
int quiz2;
int quiz3;
} s[100];
int comparison(int quiz1, int quiz2, int quiz3, int quiz_best)
{
if (quiz1>quiz2 && quiz1>quiz3)
{
printf("Best quiz mark is: \n",quiz1);
quiz_best = quiz1;
}
else if (quiz2>quiz1 && quiz2>quiz3)
{
printf("Best quiz mark is: \n",quiz2);
quiz_best = quiz2;
}
else
printf("Best quiz mark is: \n",quiz3);
quiz_best = quiz3;
return quiz_best;
}
int main()
{
struct student_profile;
int i,n,quiz_best;
printf("Number of the student: \n");
scanf("%d",&n);
for(i=0,i<n; i++;)
{
printf("\nStudent No: %d\n",i);
printf("Name: ");
scanf("%d", &s[i].name);
printf("ID: ");
scanf("%d",&s[i].ID);
printf("Final: ");
scanf("%d",&s[i].Final);
printf("mid: ");
scanf("%d",&s[i].mid);
printf("attendance: ");
scanf("%d",&s[i].attendance);
printf("assignment: ");
scanf("%d",&s[i].assignment);
printf("quiz1: ");
scanf("%d",&s[i].quiz1);
printf("quiz2: ");
scanf("%d",&s[i].quiz2);
printf("quiz3: ");
scanf("%d",&s[i].quiz3);
printf("\n Students Informations \n");
for(i=0,i<n; i++;)
{
printf("\nStudent No: %d\n",i);
printf("\nName: %s\n",s[i].name);
printf("\nID: %d\n",s[i].ID);
printf("\nFinal: %d\n",s[i].Final);
printf("\nmid: %d\n",s[i].mid);
printf("\nattendance: %d\n",s[i].attendance);
printf("\nassignment: %d\n",s[i].assignment);
printf("\nquiz1: %d\n",s[i].quiz1);
printf("\nquiz2: %d\n",s[i].quiz2);
printf("\nquiz3: %d\n",s[i].quiz3);
printf("\nThe best quiz mark is: ",quiz_best);
comparison(s[i].quiz1,s[i].quiz2,s[i].quiz3,quiz_best);
}
}
} ```
【问题讨论】:
-
启用编译器警告。这将捕获多个问题供您解决。