C語言(C&C++)求救~找高手15點

就是我程式已經打完成了,可是平均值不知道為什麼怪怪怎麼弄都弄不好,這個程式是輸入5個整數求最大值.最小值.平均值等...

最大值最小值都可以就剩下平均值不能,能否幫我看一下哪裡區要更正的嗎?或多餘的能否告知我呢?

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[5];

int max,min,sum;

int i;

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

{

printf("請輸入第%d個值:",i+1);

scanf("%d",&a[i]);

}

max=min=a[0];

for (i=1;i<5;i++)

{

sum=a[i];

if (a[i]>max) max=a[i];

if (a[i]<min) min=a[i];

}

printf("最大值=%d",max);

printf("最小值=%d",min);

printf("平均值=%f",(sum/5));

system("pause");

return 0;

}

3 個解答

評分
  • 英全
    Lv 4
    1 0 年前
    最佳解答

    您迴圈裡面的

    sum=a[i];

    應改為

    sum+=a[i];

    還有因為sum是int型態, 所以

    printf("平均值=%f",(sum/5)); 應改為

    printf("平均值=%f",(float)sum/5); 才可得到小數

    2007-03-30 22:51:48 補充:

    這是學C最常犯的錯誤,

    記得

    int 乘或除 int 為 int;

    int 乘或除 float 為 int;

    float 乘或除 int 為 float;

    2007-03-30 22:55:04 補充:

    還漏掉一個地方

    max=min=a[0];

    應改為

    sum=max=min=a[0];

    謝謝琳琳大大的意見, 我剛才沒有注意到.

    參考資料: 自己
  • 1 0 年前

    Sum=a[i]

    改成sum=sum+a[i]即可

    大部分的程式你都寫出來了

    加油~~很不錯喔!

    2007-03-30 23:18:02 補充:

    大家集思廣益答案就出來了!

    其他大大(意見中的琳琳大大說的很對)

    只是小弟再補充1下

    其他大大所說的

    printf("平均值=%f",(float)sum/5)

    中間括號FLOAT

    是指一開始的地方

    需要把

    int min, max, sum;

    改成

    int min, max;

    float sum;

    才能使用

    printf("平均值=%f",sum/5);

    參考資料: ME
  • 鳳琳
    Lv 5
    1 0 年前

    ...

    sum = max=min=a[0];

    ...

    sum += a[i];

    ...

    printf("平均值=%f",(float)sum/5);

    ...

    // 改這三個地方

    2007-03-30 22:55:46 補充:

    你們好像沒有看到他 for() loop 從 1 開始..所以沒加到 a[0]

    因此 sum 的初值也要設定成 a[0]

還有問題?馬上發問,尋求解答。