#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;
}
网页上显示是正确的,
为啥到编译器里就乱了?谁能帮我看看,谢谢
你这里首先有问题,答案是错的。总分不是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;
}
#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;
}