iT邦幫忙

0

成績平均問題....

小弟才剛學c有個問題上來問問....請問怎麼沒有出現.333
我哪裡打錯了嗎?
https://ithelp.ithome.com.tw/upload/images/20190430/20117288FkUjsyO38c.jpg
我的程式碼:
https://ithelp.ithome.com.tw/upload/images/20190430/20117288OyH0gArPJm.jpg
測試結果:
https://ithelp.ithome.com.tw/upload/images/20190430/20117288YqE7WjIPtK.jpg

ant1017 iT邦新手 2 級 ‧ 2019-04-30 16:55:47 檢舉
去看一下printf的規則....
weiclin iT邦高手 4 級 ‧ 2019-04-30 16:58:40 檢舉
"%.3if" 是什麼東東...你確定沒有打錯字?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
pinglam
iT邦新手 5 級 ‧ 2019-04-30 17:06:29
最佳解答

#include <stdio.h>

int main()
{
int ch,en,math;
double average;
scanf("%d %d %d", &ch, &en, &math);
average = ((double)ch + (double)en + (double)math)/3;
if(average >= 60){
printf("%.3f Pass",average);
}
// please do it by yourself
}

淺水員 iT邦大師 6 級 ‧ 2019-04-30 17:36:36 檢舉

我猜他是要打lf

1
小魚
iT邦大師 1 級 ‧ 2019-04-30 16:57:11
printf("%.3f 補考", average);

多了一個i

0
harutsuki
iT邦新手 5 級 ‧ 2019-05-02 09:39:37

int 除以 int 依然只會是 int
先把三個科目加起來,轉換成 float 再除以三吧

0
wrxue
iT邦好手 1 級 ‧ 2019-05-03 22:18:14

最簡單的方法是

average = (ch + en + math)/3.

3跟3.不一樣,一個是整數一個是浮點數,若用3去除的話,因為三個變數都是整數,整個運算會當成整數運算來看(商多少餘多少);反之,用3.去除就會當作浮點數運算,就會有你想要的小數點了。

P.S.:3.其實就是3.0。

我要發表回答

立即登入回答