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

来源:6-12 综合练习

闲时弄月

2016-12-30 23:56


#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://img.mukewang.com/5866835c00017f2701740127.jpg

写回答 关注

4回答

  • 微笑丶最美的曲调
    2017-01-01 16:41:55

    看错了0.0

  • 微笑丶最美的曲调
    2017-01-01 16:40:51

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


     




    微笑丶最美的...

    排序好像就是有问题吧?N-2看不懂了,还有循环条件那个i不是要小于等于你输入成绩的个数吗?

    2017-01-01 17:00:06

    共 1 条回复 >

  • 闲时弄月
    2016-12-31 00:49:35

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

    闲时弄月

    但是在这里面 就全是67

    2016-12-31 00:53:07

    共 1 条回复 >

  • 闲时弄月
    2016-12-31 00:11:29

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

    但是排序是怎么回事

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题