C语言 二维数组 以每一行的第一列进行比较大小 然后排序 要求整行交换 求指导求代码

比如一个二维数组学号姓名性别班级102张男501101王女502我想通过C语音通过比较学号大小把它改变成学号姓名性别班级101王女502102张男501... 比如一个二维数组
学号 姓名 性别 班级
102 张 男 501
101 王 女 502
我想通过C语音 通过比较学号大小 把它改变成
学号 姓名 性别 班级
101 王 女 502
102 张 男 501
展开
 我来答
百度网友d585d01
2013-05-30 · TA获得超过670个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:468万
展开全部
# include<stdio.h>
# include<string.h>
# define NUM 10//总人数为NUM
typedef struct{
 int id;
 char name[20];
 char sex[10];
 char class[10];
}Student;
void sort(Student*student)//根据学号排名的函数
{
 Student *p=student;
 Student std;
 unsigned i,j;
 for(i=0;(p+i)->id!=0;i++)
 {
  for(j=0;(p+j)->id!=0;j++)
  {
   if((p->id)>(p+1)->id)//交换两个结构体
   {
    std=*(p+1);
    *(p+1)=*p;
    *p=std;
   }
  }
 }
}
void main()
{
 Student stud[NUM]={{102,"张","男","501"},{101,"王","女","502"},{103,"李","男","501"}},*p=stud;
 sort(stud);
 for(;p->id!=0;p++)
 {
  printf("%d\t%s\t%s\t%s\n",p->id,p->name,p->sex,p->class);
 }
}

追问
请问你是用那种软件的? 怎么我用Visual C++ 6.0 这种软件运行你的程序 显示有错误??
追答

再试试吧!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式