c语言编程:从键盘上输入N名学生的信息,包括学号,姓名,成绩,用一个sort函数完成学生成绩的降序排列。
2个回答
2012-05-03
展开全部
用结构体来保存学生信息,然后用数组保存N个结构体,N个结构体中以学生成绩来排序,排序方法有冒泡、插入、选择等等。自己多想想。
展开全部
#include <stdio.h>
#include <stdlib.h>
struct student
{
int No;
char Name[10];
int Score;
};
void sort(student *stu,int n)
{
for(int i=0;i<n-1;++i)
for(int j=0;j<n-i-1;++j)
if(stu[j].Score<stu[j+1].Score)
{
student temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
void main()
{
puts("please input N:");
int n;
scanf("%d",&n);
student *stu=(student *)malloc(n*sizeof(student));
for(int i=0;i<n;++i)
{
scanf("%d%s%d",&stu[i].No,&stu[i].Name,&stu[i].Score);
}
sort(stu,n);
for(putchar('\n'),i=0;i<n;++i)
printf("%d %s %d\n",stu[i].No,stu[i].Name ,stu[i].Score);
getchar();
}
#include <stdlib.h>
struct student
{
int No;
char Name[10];
int Score;
};
void sort(student *stu,int n)
{
for(int i=0;i<n-1;++i)
for(int j=0;j<n-i-1;++j)
if(stu[j].Score<stu[j+1].Score)
{
student temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
void main()
{
puts("please input N:");
int n;
scanf("%d",&n);
student *stu=(student *)malloc(n*sizeof(student));
for(int i=0;i<n;++i)
{
scanf("%d%s%d",&stu[i].No,&stu[i].Name,&stu[i].Score);
}
sort(stu,n);
for(putchar('\n'),i=0;i<n;++i)
printf("%d %s %d\n",stu[i].No,stu[i].Name ,stu[i].Score);
getchar();
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询