为了账号安全,请及时绑定邮箱和手机立即绑定

6-12综合练习 输出结果不合适,帮忙找出问题 ???????


#include <stdio.h>
#define N 10
int sum(int score[])  //计算总分
{
    int i;
    int s = 0;
    if(i=0,i<N,i++)
    {
        s+=score[i];
    }
    return s;
}
int va(int score[])  //计算平均分
{
    return sum(score)/N;
}
void des(int score[]) //降序排列 
{
    int i,j;
    for(i=N-2;i>=0;i--)
    {
        for(j=0;j<=i;j++)
        {
            if(score[j]<score[j+1])
            {
                int temp;
                temp=score[j];
                score[j]=score[j+1];
                score[j+1]=temp;
            }
        }
    }
    for(i=0;i<N;i++)
    {
        printf("%d",score[i]);
    }
    printf("\n");
}
int max(int score[]) //最大值
{
    int j,m;
    for(j=0;j<=N-2;j++)
    {
        if(score[j]>score[j+1])
        {
            score[j+1]=score[j];
            m=score[j+1];
        }
    }
    return m;
}
int min(int score[]) //最小值
{
    int j,n;
    for(j=0;j<=N-2;j++)
    {
        if(score[j]<score[j+1])
        {
            score[j+1]=score[j];
            n = score[j+1];
        }
    }
    return n;
}
int main()
{
    int score[N]={67,98,75,63,82,79,81,91,66,84};
    int s,v,mx,mn;
    s=sum(score);
    v=va(score);
    mx=max(score);
    mn=min(score);
    printf("考试总分:%d\n",s);
    printf("考试平均分:%d\n",v);
    printf("考试成绩最高分:%d\n",mx);
    printf("考试成绩最低分:%d\n",mn);
    printf("考试成绩降序排列:\n");
    des(score);
    return 0;
}

http://img1.sycdn.imooc.com//5866835c00017f2701740127.jpg

正在回答

4 回答

看错了0.0

0 回复 有任何疑惑可以回复我~

排序那错了,我也新手,看着比较累。就不改了。用的冒泡的话是两层for循环里边再交换。你写了一层不说,而且交换的也不对。


 




0 回复 有任何疑惑可以回复我~
#1

微笑丶最美的曲调

排序好像就是有问题吧?N-2看不懂了,还有循环条件那个i不是要小于等于你输入成绩的个数吗?
2017-01-01 回复 有任何疑惑可以回复我~

我帮降序排列代码单独拿出来,输出结果合适

0 回复 有任何疑惑可以回复我~
#1

闲时弄月 提问者

但是在这里面 就全是67
2016-12-31 回复 有任何疑惑可以回复我~

总分和平均值 是我用错了循环语句,应该用for;

但是排序是怎么回事

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926019    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

6-12综合练习 输出结果不合适,帮忙找出问题 ???????

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信