永发信息网

c语言怎么用自定义函数排序

答案:3  悬赏:10  手机版
解决时间 2021-03-23 00:02
c语言怎么用自定义函数排序
最佳答案
#include
#include #define NUM 3
struct student
{
char name[20];
long num;
double sum;
};
void Create_Students(struct student stu[NUM])
{
struct student *p;
printf("请输入学生姓名 学号(12位) 总分:\n");
for( p = stu; p {
scanf("%s %d %lf",p->name,&p->num,&p->sum); }
}
void Order_Students(struct student stu[NUM])//起泡法
{
int i,j;
struct student temp;
for(i=NUM-1;i>=0;i--)
for(j=0;j if(stu[j].sum {
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1]=temp;
}
}
void main()
{
int i=1;
struct student *p;
struct student stu[NUM];
Create_Students(stu);
Order_Students(stu);
printf("%-20s %-13s %-6s %4s\n","姓名","学号(12位)","总成绩","名次");
for(p=stu;p {
printf("%-20s %-13.0d %-8.2f %2d\n",p->name,p->num,p->sum,i);
}
}//你参考参考,嘿
全部回答
用冒泡排序法,代码如下:for(j=0;j<=9;j++) //10人的总成绩进行排序
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
} for(i=0;i<10;i++) //打印排序后的总分{printf("%5d",a[i]);}
for(i=0;i{ //外层循环体开始
for(j=0;j{ //内层循环体开始
if(stu[j].sum{ //如果整形数组前面的数比其后的小,执行以下语句
temp=stu[j+1.sum]; //将比较大的数赋值给temp
stu[j+1].sum=stu[j].sum; //将比较小的数赋值给数组中后面的变量
stu[j].sum=temp; //将比较大的数赋值给数组中前面的变量
}for(i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯