结构体排序,怎么排不了?没效果。求帮忙
#include <stdio.h>#include <malloc.h>
struct student //定义结构体student
{
char name;
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.name);
printf("请输入第%d位学生的年龄:\nage : ",i+1);
scanf("%d",&p.age);
printf("请输入第%d位学生的分数:\nscore : ",i+1);
scanf("%f",&p.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.score < p.score)
{
c=p;p=p;p=c;
}
}
}
void print(struct student * p,int n) //结构体内数据的输出
{
for(int i=0;i<n;i++)
{
printf("第%d名信息如下:\n",i+1);
printf("姓名%s\n",p.name);
printf("年龄%d\n",p.age);
printf("成绩%.1f\n",p.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;
}
学会自己调试啊亲。网上肯定会有帖子说怎么调试程序~~{:5_106:}
你这大段代码打下来。谁愿意去看~~{:5_99:} lightninng 发表于 2015-3-18 22:43
学会自己调试啊亲。网上肯定会有帖子说怎么调试程序~~
你这大段代码打下来。谁愿意去看~~{:5_99: ...
已经解决了,这个题。其实还是很简单的
嵌套搞错了 秀丽江山 发表于 2015-3-18 22:49
已经解决了,这个题。其实还是很简单的
嵌套搞错了
恩,遇到问题,要学会自己解决,把自己真正弄不清的拿过来问,问题越细化,一般就有越多的人愿意回答~
自己玩论坛的感想~~
一起加油~
页:
[1]