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

为什么这样写算不出正确的最低分?

#include <stdio.h>

int ALL(int score[])

{

    int num=0;

    int i;

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

    {

        num+=score[i];

    }

    return num;

}


int TOP(int score[])

{

int i;

int j;

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

{

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

{

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

{

score[i]=score[i+1];

}

}

}

return score[0];

}


int LOW(int score[])

{

int i;

int j;

int min;

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

{

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

{

if(score[i]>score[i+1])

{

score[i]=score[i+1];

}

}

}

return score[0];

}


int main()

{

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

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

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

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

    return 0;

}


提问者:Steve_64 2018-07-27 13:40

个回答

  • 小菜菜nan
    2018-07-27 15:03:30

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

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

    if(score[i]>score[i+1])

    score[i]=score[i+1] ;

    这是你写的最低分的代码,问题出在只用比较一趟就可以,就是

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

    if(score[i]>score[i+1])

    score[i]=score[i+1] ;