帮我改一下代码#include <stdio.h>struct stu{ int num; char name[10]; char sex; int age; int score[4];}students[]={{001,"David","M",25,{80,78,92,94}}, {002,"Lily","W",23,{90,84,89,95}}, {003, "Alice","W",22,{79,78,96,97}}, {004, "Ahern","W",24,{73,74,91,96}}, {005, "Anna","W",25,{79,75,92,91}};void main(){ int i,j,number;printf("Input student’s number\n");scanf("%d",&number);for(i=0;i<3;i++)if(number==students[i].num)break;printf("name=%s\nsex=%c\nage=%d\n",students[i].name,students[i].sex,students[i].age);for(j=0;j<4;j++)printf("%d ",students[i].score[i]);printf("\n");}
时间: 2023-07-19 20:19:29 浏览: 57
#include <stdio.h>
struct stu{
int num;
char name[10];
char sex;
int age;
int score[4];
} students[] = {
{001, "David", 'M', 25, {80, 78, 92, 94}},
{002, "Lily", 'W', 23, {90, 84, 89, 95}},
{003, "Alice", 'W', 22, {79, 78, 96, 97}},
{004, "Ahern", 'W', 24, {73, 74, 91, 96}},
{005, "Anna", 'W', 25, {79, 75, 92, 91}}
};
int main(){
int i, j, number;
printf("Input student's number:\n");
scanf("%d", &number);
for(i = 0; i < 5; i++){
if(number == students[i].num){
printf("name=%s\nsex=%c\nage=%d\n", students[i].name, students[i].sex, students[i].age);
for(j = 0; j < 4; j++){
printf("%d ", students[i].score[j]);
}
printf("\n");
break;
}
}
if(i == 5){
printf("Cannot find student with number %d.\n", number);
}
return 0;
}
注:在你原来的代码中,for(i=0;i<3;i++)if(number==students[i].num)break; 这个循环只能查找前三个学生,因此我将循环条件改为 i < 5,以便查找所有的学生。同时,我添加了一个判断,当无法找到学生时会输出提示信息。另外,为了使得代码更加易读,我对其进行了适当的缩进和格式化。