请问这个题目用C语言怎么解 题库里面的题没有找到C语言的解法问问各位
定义个数组,输入信息,然后冒泡排序后输出啊
#include <stdio.h>
typedef struct _student
{
char name[20];
int score;
}student;
int main()
{
student stu[20],temp;
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s%d",stu[i].name,&stu[i].score);
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(stu[j].score < stu[j+1].score)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
for(i=0;i<n;i++)
printf("%s %d\n",stu[i].name,stu[i].score);
return 0;
}
你好题主,已经有人为你解题了,我就只讲解题思路,有了思路,配合代码看就清晰多了。你可以采用两个数组,一个用来存放名字,一个是成绩,相同下标为同一个学生的姓名和成绩。
你先要初始化吧,读取标准输入到这两个数组中,比如:
name[0] = "小明";
score[0] = 98;
然后对成绩数组排序的同时对名称对应下就可以了,是不是很简单呢!