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

为什么总分是786,平均分却变成84了????

#include <stdio.h>

#define N 10

 

//打印数组

void printArray(int Array[])

{

    int i;

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

    {

        printf("%d  ", Array[i]);

    }

}

 

//计算总分

int sum(int score[])

{

    int i,sum;

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

    {        

        sum += score[i];    

    }    

    return sum;

}

 

//最高分

int max(int score[])

{

    int i,max = 0;

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

    { 

        if(max < score[i])

        {  

            max = score[i];

        }  

    }

    return max;

}

           

//最低分

int min(int score[])

{

    int i,min = 100;

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

    {

        if(min > score[i])

        {

            min = score[i];        

        }

    }

    return min;

}

 

//降序

void sort(int score[])

{

    int i,j;

    for(i=0;i<(N-1);i++)    

    {        

        for(j=(N-1);j>i;j--)        

        {            

            if(score[j] > score[j-1])            

            {                

                int l;                

                l = score[j-1];                

                score[j-1] = score[j];                

                score[j] = l;            

            }        

        }    

    }    

    printArray(score);

}

 

int main()

{

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

 

    //总分    

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

    //最高分    

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

    //最低分    

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

    //平均分    

    printf("平均分是%d: \n", sum(score)/N);    

    //降序    

    sort(score);

 

    return 0;

}

https://img1.sycdn.imooc.com//5c451c830001926308390604.jpg

正在回答

3 回答

#include <stdio.h>


#define N 10


 


//打印数组


void printArray(int Array[])


{


    int i;


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


    {


        printf("%d  ", Array[i]);


    }


}


 


//计算总分


int sum(int score[])


{


    int i,sum=0;


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


    {        


        sum += score[i];    


    }    


    return sum;


}


 


//最高分


int max(int score[])


{


    int i,max = 0;


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


    { 


        if(max < score[i])


        {  


            max = score[i];


        }  


    }


    return max;


}


           


//最低分


int min(int score[])


{


    int i,min = 100;


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


    {


        if(min > score[i])


        {


            min = score[i];        


        }


    }


    return min;


}


 


//降序


void sort(int score[])


{


    int i,j;


    for(i=0;i<(N-1);i++)    


    {        


        for(j=(N-1);j>i;j--)        


        {            


            if(score[j] > score[j-1])            


            {                


                int l;                


                l = score[j-1];                


                score[j-1] = score[j];                


                score[j] = l;            


            }        


        }    


    }    


    printArray(score);


}


 


int main()


{


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


 


    //总分    


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


    //最高分    


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


    //最低分    


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


    //平均分    


    printf("平均分是%d: \n", (sum(score))/N);    


    //降序    


    sort(score);


 


    return 0;


}


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

慕粉1050523510

sum没声明,平均分加个括号
2019-02-06 回复 有任何疑惑可以回复我~

//计算总分

int sum(int score[])

{

    int i,sum;

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

    {        

        sum += score[i];    

    }    

    return sum;

}



定义局部变量时  赋一下初始值


sum=0

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

waipcat

为什么不赋初始值会出现这种情况呢??而且如果不赋初始值,改变输出顺序也会改变结果。。
2019-02-01 回复 有任何疑惑可以回复我~
#2

懿懿 回复 waipcat

不赋初始值的话,会出现随机值,这个随机值,可能不同计算机又会不同
2019-02-14 回复 有任何疑惑可以回复我~

救救孩子吧。。。。

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

扶泥

printf 语句里不能再运算吧
2019-01-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么总分是786,平均分却变成84了????

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