猿问

c语言排序问题

为什么我的最高分数组输出不对?

数组下标不是从零开始第一个吗?

最高分是98,而我下标为零时,输出是2686792。

求解答。

#include <stdio.h>

int zgf(int score[]);
int zdf(int score[]);
void sumi(int score[]);
int main()
{
    int score[]={67,98,75,63,82,79,81,91,66,84};
    sumi(score);
    zgf(score);
    zdf(score);
}    
    void sumi(int score[])
    {
        int sum,i;
        for(i=0;i<10;i++)
        {
            sum+=score[i];
        }
    printf("总分是%d\n",sum);
    }
    
    int zgf(int score[])
    {
        int a,b,c;
        for(a=0;a<10;a++)
        {
            for(b=a+1;b<11;b++)
            {
                if(score[a]<score[b])
                {
                    c=score[a];
                    score[a]=score[b];
                    score[b]=c;
                }
            }
        }
        printf("最高分是%d\n",score[0]);
    }
    
    int zdf(int score[])
    {
        int i,j,t;
        for(i=0;i<10;i++)
        {
            for(j=i+1;j<11;j++)
            {
                if(score[i]>score[j])
                {
                    t=score[i];
                    score[i]=score[j];
                    score[j]=t;
                }
            }
        }
        printf("最低分是%d\n",score[0]);
    }


qq_谈秋_0
浏览 965回答 1
1回答

望远

 for(b=a+1;b<11;b++)当b==10时数组下标越界
随时随地看视频慕课网APP
我要回答