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

帮忙看看问题出在哪里?谢谢!

#include <stdio.h>

int main()

{

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

    int sum=0; 

    int avg;

    int i;

    int max=score[0];

    int min=score[0];

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

    {

        if(score[i]>max)

     {

         max=score[i];

     }                       //定义最高分

        if(score[i]<min)

     {

         min=score[i];

     }                       //定义最低分

      int j;

      int min1;

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

      {

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

        {

        min1=score[j+1];

        score[j+1]=score[j];

        score[j]=min1;

        }                    //定义排序

      }

      sum+=score[i];          //定义总分

    }

    avg=sum/10;               //定义平均分

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

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

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

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

    printf("************考试成绩降序排序*************\n");

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

     {

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

     }     

    return 0;

}

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

网页上显示是正确的,

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

为啥到编译器里就乱了?谁能帮我看看,谢谢


正在回答

2 回答

你这里首先有问题,答案是错的。总分不是799是786,你总分要定义float型,除10.0 而不是10。

其次你判断最大最小值要先换完再判断。

#include <stdio.h>

int main()

{

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

    int sum=0,temp,max=0,min=score[0]; 

    float avg;

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

{

        for(int j=0;j<9-i;j++)

{

if(score[j]<score[j+1])//定义排序

{

temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}                       

}

if(score[i]>max)

max=score[i];           //定义最高分

if(score[i]<min)

min=score[i];           //定义最低分

}

    printf("************考试成绩降序排序*************\n");

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

{

sum+=score[i];             //定义总分

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

}

avg=sum/10.0;                   //定义平均分   

printf("\n最高分为%d\n最低分为%d\n总分为%d\n平均分为%.1f\n",max,min,sum,avg);

    return 0;

}


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

慕尼黑7236924 提问者

谢谢,我是for(int j=0;j<9-i;j++),这里打错了所以编译器里一直都是-858993460
2019-07-29 回复 有任何疑惑可以回复我~
#2

小小疾飞 回复 慕尼黑7236924 提问者

你其他地方的错也得注意注意,有点混乱。
2019-07-29 回复 有任何疑惑可以回复我~

#include <stdio.h>

int main()

{

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

    int sum=0,temp,max=0,min=score[0]; 

    float avg;

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

{

        for(int j=0;j<10-i;j++)

{

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

{

temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}                      //定义排序

}

sum+=score[i];             //定义总分

avg=sum/10.0;              //定义平均分

}

    

    printf("************考试成绩降序排序*************\n");

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

{

if(score[i]>max)

max=score[i];           //定义最高分

if(score[i]<min)

min=score[i];           //定义最低分

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

}

printf("总分为%d\n最高分为%d\n最低分为%d\n平均分为%.2f\n",sum,max,min,avg);     

    return 0;

}


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

举报

0/150
提交
取消

帮忙看看问题出在哪里?谢谢!

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