#include<stdio.h> struct student {long num; char name[20]; int age; int score[7]; }stu[3] ; int main() {printf("请输入三名学生的学号,姓名,年龄以及七科成绩:\n"); int i; for(i=0;i<3;i++) scanf("%l%s%d%d\n",&stu[i].num,stu[i].name,&stu[i].age,&stu[i].score); for(i=0;i<3;i++) printf("%l%s%d%d\n",stu[i].num,stu[i].name,stu[i].age,stu[i].score); return 0; } 哪里有错
时间: 2023-12-11 12:03:17 浏览: 78
基于java的论坛系统的开题报告.docx
这段代码中有几个问题:
1. 在 scanf() 函数中,应该使用 %d 格式符来读取整型数据,而不是 %l,应该使用 %s 格式符来读取字符串数据,而不是 %s。
2. 在 scanf() 函数中,应该使用 & 符号来获取变量的地址,而不是省略。
3. 在第二个 for 循环中,应该使用 %d 格式符来输出整型数据,而不是 %d。
下面是修改后的代码:
```c
#include <stdio.h>
struct student {
long num;
char name[20];
int age;
int score[7];
} stu[3];
int main() {
printf("请输入三名学生的学号,姓名,年龄以及七科成绩:\n");
int i;
for (i = 0; i < 3; i++) {
scanf("%ld%s%d%d%d%d%d%d%d", &stu[i].num, stu[i].name, &stu[i].age, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2], &stu[i].score[3], &stu[i].score[4], &stu[i].score[5], &stu[i].score[6]);
}
for (i = 0; i < 3; i++) {
printf("%ld %s %d %d %d %d %d %d %d\n", stu[i].num, stu[i].name, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[4], stu[i].score[5], stu[i].score[6]);
}
return 0;
}
```
阅读全文