输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名
假如输入
30 aaa
23 bbb
15 ccc
32 ddd
应当输出
15 ccc
23 bbb
30 aaa
32 ddd
#include<stdio.h> struct people{ int age; char name[5]; } ; int main(void) { int i,j,index; struct people people[10],temp; for(i=0;i<4;i++){ scanf("%d",&people[i].age); scanf("%s",&people[i].name); } for(i=0;i<3;i++){ index=i; for(j=i+1;j<4;j++) if(people[j].age < people[index].age){ index = j; } temp = people[index]; people[index] = people[i]; people[i] = temp; } for(i=0;i<4;i++) printf("%d %s\n",people[i].age,people[i].name); return 0; }
____________________________________________________________________________________________
题目描述
输入10个学生的学号、姓名和成绩,计算并输出平均分,再按照从高分到低分的顺序输出他们的信息。
输入要求
输入10个学生的学号、姓名和成绩。学号和成绩用整数表示,姓名是一个长度不超过19个字符的字符串。
输出要求
输出平均分,再按照从高分到低分的顺序输出10个学生的信息。
假如输入
101 aaa 80 102 bbb 90 103 ccc 70 104 ddd 60 105 eee 80 106 fff 60 107 ggg 78 108 hhh 80 109 iii 68 110 jjj 80
应当输出
The average: 74 The student score: 102 bbb 90 110 jjj 80 101 aaa 80 108 hhh 80 105 eee 80 107 ggg 78 103 ccc 70 109 iii 68 106 fff 60 104 ddd 60
#include<stdio.h> struct student{ int num; char name[19]; int score; int average; }; int main(void) { int i,index,j; int k=0; int average; struct student students[10],temp; for(i=0;i<10;i++){ scanf("%d",&students[i].num); scanf("%s",&students[i].name); scanf("%d",&students[i].score); k=k+students[i].score ; } for(i=0;i<9;i++){ index=i; for(j=i+1;j<10;j++) if(students[j].score<students[index].score) index=j; temp=students[index]; students[index]=students[i]; students[i]=temp; } average=k/10; printf("The average: %d\n",average); printf("The student score:\n"); for(i=9;i>=0;i--) printf("%d %s %d\n",students[i].num,students[i].name,students[i].score); return 0; }
____________________________________________________________________________________________
题目描述
输入某班5位学生的姓名及数学、英语成绩,计算每位学生的平均分;然后输出平均分最高的学生之姓名及数学、英语成绩。
输入要求
输入某班5位学生的姓名及数学、英语成绩。姓名是一个长度不超过19个字符的字符串,成绩用整数表示。
输出要求
输出每名学生的姓名和平均分,平均分用浮点数表示,输出时精确到小数点后1位。
然后输出平均分最高的学生之姓名及数学、英语成绩。
假如输入
aaa 61 88 bbb 63 89 ccc 64 82 ddd 85 66 eee 66 85
应当输出
aaa 74.5 bbb 76.0 ccc 73.0 ddd 75.5 eee 75.5 The max score: bbb 63 89
#include<stdio.h> struct student{ char name[20]; int math,english; float sum,average; }; int main(void) { int i,max; struct student stu[5]; for(i=0;i<5;i++){ scanf("%s",&stu[i].name); scanf("%d",&stu[i].math); scanf("%d",&stu[i].english); stu[i].sum = stu[i].math+stu[i].english; stu[i].average = stu[i].sum/2; } max=0; for(i=1;i<5;i++){ if(stu[max].average<stu[i].average) max=i; } for(i=0;i<5;i++){ printf("%s %.1f\n",stu[i].name,stu[i].average); } printf("The max score: %s %d %d\n",stu[max].name,stu[max].math,stu[max].english); return 0; }
____________________________________________________________________________________________
题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及总分最高分的学生的数据(包括学号、姓名、3门课成绩)
输入要求
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出要求
各门课的平均成绩 总分最高分的学生的数据(包括学号、姓名、3门课成绩)
假如输入
2
1 blue 90 80 70
2 clan 80 70 60
应当输出
85 75 65
1 blue 90 80 70
#include<stdio.h> struct student{ int num; char name[20]; int score1,score2,score3,sum; }; int main(void) { int i,n,sum; int sum1=0,sum2=0,sum3=0; int ave1,ave2,ave3; struct student stu[30]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&stu[i].num); scanf("%s",&stu[i].name); scanf("%d",&stu[i].score1); scanf("%d",&stu[i].score2); scanf("%d",&stu[i].score3); stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; } for(i=0;i<n;i++){ sum1=sum1+stu[i].score1; sum2=sum2+stu[i].score2; sum3=sum3+stu[i].score3; } ave1=sum1/n; ave2=sum2/n; ave3=sum3/n; printf("%d %d %d\n",ave1,ave2,ave3); sum=0; for(i=0;i<n;i++){ if(stu[i].sum>stu[sum].sum) sum=i; } printf("%d %s %d %d %d\n",stu[sum].num,stu[sum].name,stu[sum].score1,stu[sum].score2,stu[sum].score3); return 0; }