跪下来求了!C语言作业,急用啊!

1.编程实现班级同学信息处理程序,每个同学的基本信息至少有:姓名、学号、身高、性别、手机号码信息,要求:

1)通过键盘输入2个同学的基本信息存储在2个结构体类型的变量中,然后输出他们的信息;

2)如果有多个(3个以上)同学的基本信息输入并存储在一个结构体数组中,程序怎么修改;

3)在第2)问基础上,把结构体数组中的同学信息按照身高从低到高进行排序,仍然保存在该结构体数组中,要求程序先输出排序前数组中同学信息,然后再输出排序以后数组中同学信息;

提示:

1)该程序首先需要定义学生基本信息的结构体类型,然后再用该结构体类型去定义变量;

2)在第3问中的数组初始数据可以采用定义结构体数组时直接提供初始化数据;

解答:

1)

程序代码:

运行结果:

2)

程序代码:

运行结果:

3)

程序代码:

运行结果:

#include<stdio.h>

#include<string.h>

#include<algorithm>

using namespace  std;

struct Student{

char name[30];

double Height;

char SchoolNumber[20];

char sex[2];

char PhoneNumber[12];

}s[110];

int cmp(Student a,Student b){

return a.Height<b.Height;

}

int main(){

int n;//输入学生数量

scanf("%d",&n);

for(int i=0;i<n;i++){

scanf("%s%s%lf%s%s",&s[i].name,&s[i].SchoolNumber,&s[i].Height,&s[i].sex,&s[i].PhoneNumber);

}

printf("排序前----------------------\n");

for(int i=0;i<n;i++){

printf("Name:%s 学号:%s  身高:%lf  性别:%s 电话号码:%s\n",s[i].name,s[i].SchoolNumber,s[i].Height,s[i].sex,s[i].PhoneNumber);

}

sort(s,s+n,cmp);

printf("排序后----------------------\n");

for(int i=0;i<n;i++){

printf("Name:%s 学号:%s  身高:%lf  性别:%s 电话号码:%s\n",s[i].name,s[i].SchoolNumber,s[i].Height,s[i].sex,s[i].PhoneNumber);

}

return 0;

}

追问

#include系统提示这里错了

追答

什么错误。。。不应该啊

追问

在写好一点吧

追答

有什么问题??你想要什么效果?

追问

就是现实你的这一段代码错了#include

追答

运行结果截图发我看下,因为,我运行没有问题。。。。
自己写了个排序,不用sort了
//冒泡排序
void Sort(int n){
for(int i=1;is[j+1].Height){
char str[30];
strcpy(str,s[j].name);
strcpy(s[j].name,s[j+1].name);
strcpy(s[j+1].name,str);
//
strcpy(str,s[j].PhoneNumber);
strcpy(s[j].PhoneNumber,s[j+1].PhoneNumber);
strcpy(s[j+1].PhoneNumber,str);
//
strcpy(str,s[j].SchoolNumber);
strcpy(s[j].SchoolNumber,s[j+1].SchoolNumber);
strcpy(s[j+1].SchoolNumber,str);
//
strcpy(str,s[j].sex);
strcpy(s[j].sex,s[j+1].sex);
strcpy(s[j+1].sex,str);
//
double hei=s[j].Height;
s[j].Height=s[j+1].Height;
s[j+1].Height=hei;
}
}
}
}

//sort(s,s+n,cmp);
//上面改成下面就行了,因为代码超过限制所以就这样发你了
Sort(n);
你帮那个头文件删掉就行了

温馨提示:答案为网友推荐,仅供参考
相似回答