幫忙看看問題出在哪里?謝謝!
#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;
}
網(wǎng)頁上顯示是正確的,
為啥到編譯器里就亂了?誰能幫我看看,謝謝
2019-07-28
你這里首先有問題,答案是錯(cuò)的。總分不是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;
}
2019-07-28
#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;
}