C语言 二维数组 以每一行的第一列进行比较大小 然后排序 要求整行交换 求指导求代码
比如一个二维数组学号姓名性别班级102张男501101王女502我想通过C语音通过比较学号大小把它改变成学号姓名性别班级101王女502102张男501...
比如一个二维数组
学号 姓名 性别 班级
102 张 男 501
101 王 女 502
我想通过C语音 通过比较学号大小 把它改变成
学号 姓名 性别 班级
101 王 女 502
102 张 男 501 展开
学号 姓名 性别 班级
102 张 男 501
101 王 女 502
我想通过C语音 通过比较学号大小 把它改变成
学号 姓名 性别 班级
101 王 女 502
102 张 男 501 展开
1个回答
展开全部
# 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 这种软件运行你的程序 显示有错误??
追答
再试试吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询