c语言排序出现错误,C语言冒泡法排序,输出老是错误。请指教

C语言冒泡法排序,输出老是错误。请指教0

dcebd7a0de6265b6ccae5ead692f1eab.pngnlruxm2013.10.01浏览14次分享举报

在C++环境下编了这个程序 #include #define SN 2 //学生人数 struct student { long num; char name[20]; float score[3]; }st[SN]; void bubble(int b,struct student *pst) //冒泡法排序并输出 { int i,j,k; struct student tem;... 在C++环境下编了这个程序

#include

#define SN 2 //学生人数

struct student

{

long num;

char name[20];

float score[3];

}st[SN];

void bubble(int b,struct student *pst) //冒泡法排序并输出

{

int i,j,k;

struct student tem;

for(i=0;i

{for(j=0;j

{if(pst[j].score[b]

{tem=pst[j];

pst[j]=pst[j+1];

pst[j+1]=tem;

}

}

}

printf("\n 学号 姓名 高等数学 大学英语 C语言\n");

for(k=0;k

{printf("%d %s ",pst[k].num,pst[k].name);

for(j=0;j<3;j++)

printf(" %d ",pst[k].score[j]);

printf("\n");

}

}

void rank(struct student *pst)

{

int a,x=1;

while(x)

{

printf("\n请输入要排序的科目代码:\n");

printf("+++++++++++++++++++++++++++++++++\n");

printf("+ 1.C语言 +\n");

printf("+ 2.高数 +\n");

printf("+ 3.大学英语 +\n");

printf("+ 4.退出 +\n");

printf("+++++++++++++++++++++++++++++++++\n");

scanf("%d",&a);

switch(a)

{

case 1:

printf("\nC语言成绩已完成排序:\n");

bubble(0,pst);

break;

case 2:

printf("\n高数成绩已完成排序:\n");

bubble(1,pst);

break;

case 3:

printf("\n大学英语已完成排序:\n");

bubble(2,pst);

break;

case 4:

x=0;

break;

default:

printf("\n输入字符无效!输入错误!\n\n");

}

}

}

void main()

{

int choose;

int i,j;

float t;

printf("请按括号内顺序输入学生的信息(学号后四位、姓名、C语言成绩、高数成绩、大学英语成绩)\n");

for(i=0;i

{scanf("%ld",&st[i].num);

getchar(); //getchar()的作用是吸收输入的回车,以利后面输入字符串

gets(st[i].name);

for(j=0;j<3;j++)

{scanf("%f",&t);

st[i].score[j]=t;

}

}

struct student *pst=st;

rank(pst);

}

发现输出的时候每次成绩栏都是0 0 0,自己查不出原因,希望大家能帮帮忙,谢谢! 展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值