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

出了点问题,求解,急!

为什么我的score[2]被吃了?

#include <stdio.h>
int main()
{
    int score[10]={67,98,75,63,82,79,81,91,66,84};
    int sum,average,N;
    sum = 0;
    for(N=0;N<10;N++)
    {
        sum += score[N];
    }
        printf("总分是%d\n",sum);
    for(N=0;N<10;N++)
        {
            if(score[N]<score[N+1])
                {
                    int temp;
                    temp=score[N+1];
                    score[N+1]=score[N];
                    score[N]=temp;                  
     printf("score[%d]=%d\n",N,score[N]);
                }
        }
        printf("最高分是%d\n",score[0]);
        printf("最低分是%d\n",score[9]);
        average=sum/10;
        printf("平均分是%d\n",average);
       
        return 0;
}

提问者:慕函数409345 2017-11-04 00:29

个回答

  • Imunique
    2017-11-04 15:04:48

    读一读代码,你第二次循环时不满足if语句的判断条件,所以等于说第二次循环n等于2时没有执行if里面的代码,所以你应该把 printf("score[%d]=%d\n",N,score[N]);放到if外面,这样就行了。