九度-1023-EXCEL排序

本文介绍了一个使用C语言实现的结构体排序程序案例。该程序定义了一个包含学号、姓名和成绩字段的结构体,并实现了三种排序方式:按学号、姓名或成绩排序。通过qsort函数和自定义比较函数实现不同属性的排序逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct in
{
 int xue;
 char name[10];
 int great;
}a[100005];
int cmp1(const void *a,const void *b)
{
  return *(int *)a-*(int *)b;
}
int cmp2(const void *a,const void *b)
{
    struct in *c=(in *)a;
 struct in *d=(in *)b;
 if(strcmp(c->name,d->name)!=0)
  return strcmp((char *)c->name,(char *)d->name);
 else return c->xue-d->xue;
}
int cmp3(const void *a,const void *b)
{
 struct in *c=(in *)a;
 struct in *d=(in *)b;
 if(c->great!=d->great)
  return c->great-d->great;
 else return  c->xue-d->xue;
}
int main()
{
 int n,c,t=1;
 while(scanf("%d%d",&n,&c)&&n+c)
 {
  int i;
  for(i=0;i<n;i++)
   scanf("%d%s%d",&a[i].xue,a[i].name,&a[i].great);
  if(c==1)
   qsort(a,n,sizeof(a[0]),cmp1);
  else if(c==2)
   qsort(a,n,sizeof(a[0]),cmp2);
  else if(c==3)
   qsort(a,n,sizeof(a[0]),cmp3);
  printf("Case %d:\n",t++);
  for(i=0;i<n;i++)
  {
   printf("%06d %s %d\n",a[i].xue,a[i].name,a[i].great);
  }
 }
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值