[語法] 此種情況下 一定要用浮點數作為變數類型嗎
底下是一個簡單的輸出入控制的練習
我是個自學的新手 雖然基本的語法沒有問題 但還是有點小地方不太懂想請教m(_ _)m
==============================================================================
科目A的成績(data1) 跟科目B的成績(data2) 都是整數值
但取平均之後 有可能是小數
如果我一開始就宣告data1 和data2 是int
最後才取平均值是浮點數 (設定平均值是小數點一位)
則跑出來的平均值是零 無法顯示正確的答案 orz
可以請教一下是為什麼嗎|||
對應程式碼見下
int data1;
int data2;
printf("請輸入科目A的成績:");
scanf("%d",&data1);
printf("請輸入科目B的成績:");
scanf("%d",&data2);
printf("統計中.................\n");
printf(" 科目A的成績:%d\n", data1);
printf(" 科目B的成績:%d\n", data2);
printf("-----------------\n");
printf(" 總分:%d\n", data1+data2);
printf(" 平均:%.1f\n", (data1+data2)/2);
==============================================================================
又如果我一開始就宣告data1 和data2 是float
那麼雖然可以很順利正確地跑出平均值的結果
但data1 和data2的位數 會由於預設的關係而是六位 (ex:85.000000 )
如果要讓data1 和data2顯示出來的只是整數 沒有小數點後面的那堆0
就要使用.prec參數來控制
變得又有點麻煩|||
對應程式碼見下:
float data1;
float data2;
printf("請輸入科目A的成績:");
scanf("%f",&data1);
printf("請輸入科目B的成績:");
scanf("%f",&data2);
printf("統計中.................\n");
printf(" 科目A的成績:%.0f\n", data1);
printf(" 科目B的成績:%.0f\n", data2);
printf("-----------------\n");
printf(" 總分:%.0f\n", data1+data2+data3);
printf(" 平均:%.1f\n", (data1+data2+data3)/3);
==============================================================================
所以我想請問
有可以一開始就宣告data1 data2是int
然後又能使平均值是正確算出結果
的寫法嗎 感謝
→
09/11 11:16, , 1F
09/11 11:16, 1F
→
09/11 11:26, , 2F
09/11 11:26, 2F
※ 編輯: bookticket 來自: 140.119.143.103 (09/11 11:26)
→
09/11 11:28, , 3F
09/11 11:28, 3F
→
09/11 11:33, , 4F
09/11 11:33, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章