c语言变量大小排列乱码,冒泡排序后乱码了,结构体的数据丢失了

得分:20

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

#include

struct student{

char name[20],xibu,ganbu;

double qimo,pingyi;

int lunwen;

int sum;

};

int main()

{

int JJSum=0;  //奖金总数

struct student stu[10],s;                    /*记录每个学生的结构体,结构体s用于后面的冒泡*/

int n,num,i,zongshu,j;        /*n,表示测试的数据组数,num表示学生的个数*//*zongshu表示最总的奖金总数*/

printf("输入测试组数:");    //不能给个提示吗,又不复杂。

scanf("%d",&n);

while(n--)

{

printf("输入学生数量:");

scanf("%d",&num);

printf("依次输入姓名、期末平均成绩、班级评议成绩、是否干部、是否西部、论文数量:\n");

for(i=0;i

{

stu[i].sum=0;

scanf("%s%lf%lf",&stu[i].name,&stu[i].qimo,&stu[i].pingyi);//这里面是向stu数组中存值,

//不能是stu->*,stu->*只是向数组第一个元素赋值

//所以后面的都是默认值,会是随机数

getchar();

scanf("%c",&stu[i].ganbu);

getchar();

scanf("%c%d",&stu[i].xibu,&stu[i].lunwen);

if((stu[i].qimo>80)&&(stu[i].lunwen>0))

stu[i].sum=stu[i].sum+8000;

if((stu[i].qimo>85)&&(stu[i].pingyi>80))

stu[i].sum=stu[i].sum+4000;

if(stu[i].qimo>90)

stu[i].sum=stu[i].sum+2000;

if((stu[i].qimo>85)&&(stu[i].xibu=='Y'))

stu[i].sum=stu[i].sum+1000;

if((stu[i].pingyi>80)&&(stu[i].ganbu=='Y'))

stu[i].sum=stu[i].sum+850;

printf("%s %lf %lf %c %c %d %d\n",stu[i].name,stu[i].qimo,stu[i].pingyi,stu[i].ganbu,stu[i].xibu,stu[i].lunwen,stu[i].sum);/*测试数据的正确性*/

}

for(i=0;i

{

for(j=0;j

{

if(stu[j].sum

{

s=stu[j];

stu[j]=stu[j+1];

stu[j+1]=s;

}

}

}

for(i=0;i

{

printf("%6d",stu[i].sum);

JJSum+=stu[i].sum;        //把学生奖金依次相加得总奖金数

}

printf("\n");

printf("得奖学金最高的学生:\n");

printf("姓名:%s\n",stu[0].name);

printf("奖金:%d\n",stu[0].sum);

printf("奖学金总数:%d\n",JJSum);

printf("\n");

}

return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值