问答详情
源自:6-12 综合练习

关于降序排列的求助!

#include <stdio.h>

int main()

{

    int score[10]={67,98,75,63,82,79,81,91,66,84};

    

    //总分

    int sum=0;

    int i;

    for(i=0;i<10;i++)

    {

        sum=sum+score[i];

    }

    printf("总分%d\n\n",sum);

    

    //最高分

    int max=0;

    int j;

    for(j=0;j<9;j++)

    {

        if(max<score[j])

        {max=score[j];}

    }

    printf("最高分%d\n\n",max);

    

    //最低分

    int min=200;

    int q;

    for(q=0;q<9;q++)

    {

        if(min>score[q])

        {min=score[q];}

    }

    printf("最低分%d\n\n",min);

    

    //平均分

    double avg=sum/10;

    printf("平均分%f\n\n",avg);

    

    //考试成绩降序排列

    int temp;

    int m,n;

    printf("#####考试降序排列#####\n\n");

    for(m=0;m<9;m++)

    if(score[m]<score[m+1])

    {

        temp=score[m];

        score[m]=score[m+1];

        score[m+1]=temp;

    }

    for(n=0;n<10;n++)

    printf("%d ",score[n]);

    

    

    

    

    return 0;

}

-------------------------------------------------------------------------------------------------

各位大神最后这个降序排列,运行结果是没有排列之前的,为什么?哪里出错了额

提问者:_Gin 2015-05-06 20:25

个回答

  • Angel帝豪
    2015-05-19 14:23:29

    printf("#####考试降序排列#####\n\n");

       for(n=8;n>=0;n--)

        {

        for(n=0;m<9;n++)

        if(score[m]<score[m+1])

        {

            temp=score[m];

            score[m]=score[m+1];

            score[m+1]=temp;

        }

       }

    可以改成这样..............................

  • dengwo
    2015-05-16 09:38:06

     改成这样就可以了//考试成绩降序排列

     


        int temp;

        int m,n;

        printf("#####考试降序排列#####\n\n");

        for(m=0;m<9;m++)
      for(n=m+1;n<10;n++)

        if(score[m]<score[n])

        {

            temp=score[m];

            score[m]=score[n];

            score[n]=temp;

        }

  • _Gin
    2015-05-06 20:27:19

    是全局变量什么的吗?我不太懂。。