c语言从键盘输入三名同学的姓名和语文、数学、外语成绩,输出三名同学的姓名和语文、数学、外语成绩、以及总成绩,输出顺序按总成绩由高到低排序。
时间: 2023-07-10 22:11:51 浏览: 56
好的,这道题目可以通过结构体和数组来实现。以下是示例代码:
```c
#include<stdio.h>
#include<string.h>
struct student{
char name[20];
int chinese;
int math;
int english;
int sum;
};
int main(){
struct student s[3];
int i, j;
struct student temp;
// 输入三名同学的信息
for(i=0; i<3; i++){
printf("请输入第%d名同学的姓名:", i+1);
scanf("%s", s[i].name);
printf("请输入第%d名同学的语文成绩:", i+1);
scanf("%d", &s[i].chinese);
printf("请输入第%d名同学的数学成绩:", i+1);
scanf("%d", &s[i].math);
printf("请输入第%d名同学的英语成绩:", i+1);
scanf("%d", &s[i].english);
s[i].sum = s[i].chinese + s[i].math + s[i].english;
printf("\n");
}
// 按总成绩由高到低排序
for(i=0; i<2; i++){
for(j=i+1; j<3; j++){
if(s[i].sum < s[j].sum){
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
// 输出三名同学的信息
printf("按总成绩由高到低排序如下:\n");
for(i=0; i<3; i++){
printf("姓名:%s,语文成绩:%d,数学成绩:%d,英语成绩:%d,总成绩:%d\n", s[i].name, s[i].chinese, s[i].math, s[i].english, s[i].sum);
}
return 0;
}
```
希望能够帮助到你!