#include <stdio.h>
int main()
{
int n;
int i;//回圈變數
float max = -1;
float min = 101;
float score[5] = {};
float avg = 0;
scanf("%d",&n);
for(i = 0; i < 5; i++)
{
scanf("%f",score);
}
for(i = 0; i < 5;i++)
{
if(max < score[i])
{
max = score[i];
}
}
for(i = 0; i < 5 ;i++)
{
if(min > score[i])
{
min = score[i];
}
}
for(i = 0; i < 5; i++)
{
avg += score[i];
}
printf("%.2f %.2f %.2f",max,min,avg/5);
return 0;
}
麻煩各位看一下這段代碼有什么問題?
編譯時未報錯,但結果不正確
uj5u.com熱心網友回復:
把scanf(“%f”, score)改成 scanf(“%f”, &score[i])uj5u.com熱心網友回復:
修改如下,供參考,希望能幫到你:#include <stdio.h>
int main(int argc, char* argv[])
{
int n;
int i;//回圈變數
float max; //max = -1;
float min ; //min = 101;
float score[5] = {0};//score[5] = {};初始化為0
float avg = 0;
//scanf("%d",&n); 這句沒什么用,放這里輸入n,但沒用到n
for(i = 0; i < 5; i++)
{
scanf("%f",&score[i]);//scanf("%f",score);
}
min=max=score[0];//max min 初始化放在這里
for(i = 0; i < 5;i++)
{
if(max < score[i])
{
max = score[i];
}
//}
//for(i = 0; i < 5 ;i++)
// {
if(min > score[i])
{
min = score[i];
}
}
for(i = 0; i < 5; i++)
{
avg += score[i];
}
printf("max=%.2f min=%.2f avg=%.2f\n",max,min,avg/5);
return 0;
}
uj5u.com熱心網友回復:
再精煉點,少用幾個for:#include <stdio.h>
int main(int argc, char* argv[])
{
int n;
int i;//回圈變數
float max; //max = -1;
float min ; //min = 101;
float score[5] = {0};//score[5] = {};初始化為0
float avg = 0;
//scanf("%d",&n); 這句沒什么用,放這里輸入n,但沒用到n
for(i = 0; i < 5; i++)
{
scanf("%f",&score[i]);//scanf("%f",score);
}
min=max=score[0];//max min 初始化放在這里
for(i = 0; i < 5;i++)
{
if(max < score[i])
{
max = score[i];
}
//}
//for(i = 0; i < 5 ;i++)
// {
if(min > score[i])
{
min = score[i];
}
//}
// for(i = 0; i < 5; i++)
//{
avg += score[i];
}
printf("max=%.2f min=%.2f avg=%.2f\n",max,min,avg/5);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236282.html
標籤:C語言
