|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <malloc.h>
struct student //定义结构体 student
{
char name[20];
int age;
float score;
};
void stdnum(struct student * p,int n) //结构体的数据输入函数
{
for(int i=0;i<n;i++)
{
printf("请输入第%d位学生的姓名:\nname : ",i+1);
scanf("%s",p[i].name);
printf("请输入第%d位学生的年龄:\nage : ",i+1);
scanf("%d",&p[i].age);
printf("请输入第%d位学生的分数:\nscore : ",i+1);
scanf("%f",&p[i].score);
}
}
void sort(struct student * p,int n) //结构体的排序,不知道为什么没有效果???求解释
{
struct student c;
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1-j;j++)
{
if(p[j].score < p[j+1].score)
{
c=p[j];p[j]=p[j+1];p[j+1]=c;
}
}
}
void print(struct student * p,int n) //结构体内数据的输出
{
for(int i=0;i<n;i++)
{
printf("第%d名信息如下:\n",i+1);
printf("姓名%s\n",p[i].name);
printf("年龄%d\n",p[i].age);
printf("成绩%.1f\n",p[i].score);
}
}
int main() //主函数
{
int n;
struct student * pr;
printf("请输入一共有多少学生: \n学生数 = ");
scanf("%d",&n);
pr=(struct student *)malloc(n * sizeof(struct student)); //申请n个学生的结构体数据类型
stdnum(pr,n); //输入
sort(pr,n); //排序,但是没效果
print(pr,n); //排序后的名次输出
return 0;
}
|
|