题目及要求如下图所示:
代码如下:
#include<stdio.h>
struct student//定义结构体,并声明一个结构体数组
{
char name[20];
char id[20];
int score;
}stu[100];
int main(){
int n;//学生数n
scanf("%d",&n);
int i,min,max;
for(i=0;i<n;i++){//输入 学生姓名,学号,分数
scanf("%s %s %d",&stu[i].name,&stu[i].id,&stu[i].score);
}
max=stu[0].score;//假设最高最低分都为第一个学生
min=stu[0].score;
for(i=0;i<n;i++){
if(max<stu[i].score){
max=stu[i].score;
}
if(min>stu[i].score){
min=stu[i].score;
}
}
for(i=0;i<n;i++){
if(stu[i].score==max){
printf("%s %s\n",stu[i].name,stu[i].id);
}
}
for(i=0;i<n;i++){
if(stu[i].score==min){
printf("%s %s",stu[i].name,stu[i].id);
}
}
return 0;
}
1.结构体的定义与运用。
struct student//定义结构体,并声明一个结构体数组
{
char name[20];
char id[20];
int score;
}stu[100];//结构体数组 定义大一点,刚开始定义stu[50],编译不给过。
2.for(i=0;i<n;i++){//输入 学生姓名,学号,分数
scanf("%s %s %d",&stu[i].name,&stu[i].id,&stu[i].score);
}
注意别忘记&
3.假设最低最高分都是第一个学生,利用for循环比较找出最低与最高分输出。