1.输入学生的姓名和分数
2.输出之前输入的数据
3.找出其中分数最大的和最小的人
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
char *name;
int score;
};
int main()
{
int i;
struct student aa[3];
struct student maxScore;
struct student minScore;
for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
{
printf("请输入第%d个学生姓名:",i+1);
aa[i].name=(char *)malloc(128);
memset(aa[i].name,'\0',128);
scanf("%s",aa[i].name);
printf("请输入第%d个学生的分数:",i+1);
scanf("%d",&aa[i].score);**//scanf里面一定不能加'\n'**
}
for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
{
printf("%s:%d\n",aa[i].name,aa[i].score);
}
maxScore=aa[0];
minScore=aa[0];
int n;
for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
{
if(maxScore.score<aa[i].score)
{
maxScore=aa[i];
n=i;
}
}
printf("成绩最高的是:%s,%d分\n",maxScore.name,maxScore.score);
for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
{
if(minScore.score>aa[i].score)
{
minScore=aa[i];
}
n=i;
}
printf("成绩最差的是:%s,%d分\n",minScore.name,minScore.score);
return 0;
}
scanf里面一定不要添加’\n’,printf里面可以添加作为换行,但scanf里面不必。