标题:我的程序运行的结果出了问题 求大家帮我修改一下
只看楼主
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
结帖率:57.14%
已结贴  问题点数:10 回复次数:2 
我的程序运行的结果出了问题 求大家帮我修改一下
编写程序:从键盘输入10名学生的姓名及三科成绩,将这10个学生的信息按照总分从高到低的顺序排序。
#include"stdio.h"
#define N 3
struct stu
{
    char nam[10];
    int sco[3];
    int sum;
};
void f_input(struct stu infor[N])
{
    int i,k;
    for(i=0;i<N;i++)
    {printf("Input name:\n");
    gets(infor[i].nam);}
    fflush(stdin);
    for(i=0;i<N;i++)
    {for(k=0;k<3;k++)
        {printf("Input a score:\n");
         scanf("%d",&infor[i].sco[k]);}
    infor[i].sum=infor[i].sco[1]+infor[i].sco[2]+infor[i].sco[3];}
}
void f_sort(struct stu cmp[N])
{
    int i,k;
    struct stu temp;
    for(i=1;i<N;i++)
        for(k=1;k<=N-i;k++)
        if(cmp[i-1].sum<cmp[i].sum)
        {temp=cmp[i-1];
        cmp[i-1]=cmp[i];
        cmp[i]=temp;}
}
void f_print(struct stu put[N])
{
    int i,k;
    printf("姓名\t成绩1\t成绩2\t成绩3\t\n");
    for(i=0;i<N;i++)
    {
        printf("%s\t",put[i].nam);
        fflush(stdin);
        for(k=0;k<3;k++)
        printf("%d\t",put[i].sco[k]);
        printf("\n");
    }
}
void main()
{ struct stu s[N];
   f_input(s);
   f_sort(s);
   f_print(s);
}



[ 本帖最后由 Ljldym 于 2015-5-9 14:07 编辑 ]
搜索更多相关主题的帖子: 编写程序 include 键盘 信息 姓名 
2015-05-09 13:25
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:10 
乱码应该是文件编码问题
中间的这个f_sort方法写的有问题
内层循环k却没用k明显有问题,return cmp[N]也不对
2015-05-09 14:10
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
得分:0 
回复 2楼 calix
谢谢对于循环的提醒!果然成功了
2015-05-09 14:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445054-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.109231 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved