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

为什么我的降序无效?

#include <stdio.h>
int sum(int score[],int N)
{
    int sum1=0;
    int i;
    for(i=0;i<N;i++)
    {
        sum1+=score[i];
    }
    return sum1;
}
int getmax(int score[],int N)
{
    int max=score[0];
    int i;
    for(i=1;i<N;i++)
    {
        if(score[i]>max)
        max=score[i];
    }
    return max;
}
int getmin(int score[],int N)
{
    int min=score[0];
    int i;
    for(i=1;i<N;i++)
    {
        if(score[i]<min)
        min=score[i];
    }
    return min;
}
float getaver(int sum,int N)
{
    float sum2=(float)(sum);
    float aver=sum2/N;
    return aver;
}
int paixu(int score[],int N)
{
    int i,j,k;
    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(k=0;i<N;k++)
    {
        printf("%d\n",score[k]);
    }
    return 0;
}
int main()
{
    int score[]={67,98,75,63,82,79,81,91,66,84};
    int N=10;
    int sum1=sum(score,N);
    int max=getmax(score,N);
    int min=getmin(score,N);
    int aver=getaver(sum1,N);
    printf("数组的和是%d\n",sum1);
    printf("数组的最大值是%d\n",max);
    printf("数组的最小值是%d\n",min);
    printf("数组的平均值是%d\n",aver);
    int paixu(score,N);
    return 0;
}


运行结果:
数组的和是786
数组的最大值是98
数组的最小值是63
数组的平均值是78


正在回答

2 回答

你这个降序的逻辑是没有错的,但是后面的循环部分写的有点小问题,我修改了一下

void  sort(int score[], int N)//你这个函数也不用返回值就设置成void就好了,sort就是排序的意思
{
    int i, j, k;
    for(i = N-1; 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(k = 0; k < N; k++)
    {
        printf("%d\n", score[k]);
    }
    
}

还有一点就是注意一点代码规范,代码里加入适当的空格看起来会更舒服一些

还有你的命名规范,如getmax应该写成getMax,最好别用拼音命名可以用sort。

在main函数中调用的时候直接sort(score, N);

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

寒月0 提问者

注释点赞,不过排序无效因为我加了int!!
2015-12-09 回复 有任何疑惑可以回复我~

 float sum2=(float)(sum);   麻烦帮我解释一下 求平均数时为什么要这么写?

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

举报

0/150
提交
取消

为什么我的降序无效?

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