描述
正確解法:
#include
intmain()
else salary = hour*
50.00;}
else
if(hour>40)
else salary = hour*
30.00
;printf
("%.2lf\n"
,salary)
;return0;
}
錯誤解法一:
#include
intmain()
else salary = hour*
50.00;}
else
if(hour>40)
else salary = hour*
30.00
;printf
("%.2lf\n"
,salary)
;// 可定義整型十進位制資料,以十六進製制輸出,但此處不能將整型資料以浮點輸出????
return0;
}
題目延伸:
若定義變數為整型,將表示式計算結果為浮點型別資料賦值於該整型變數,輸出結果將出現何種狀況?
#include
intmain()
else
}else
if(hour>40)
else salary = hour*
30.00
;printf
("%.2lf\n"
,salary)
;return0;
}
當輸入為 year=5 hour=50時,程式執行結果:
5
50year=
5,hour=
50,salary integer=
2765
//正確結果為2765.555,此處變數捨棄小數部分將整數部分輸出
year=
5,hour=
50,salary integer=
687194767
//變數未初始化導致???經驗證,初始化為 0 後,仍輸出該資料
year=
5,hour=
50,salary float
=2765.554688
// 如何解釋???可將整型變數已浮點型別輸出?為何資料和真實結果出現偏差??
year=
5,hour=
50,salary float
=2765.555000
//如何理解有效數字/位元組數/小數字數???
year=
5,hour=
50,salary double
=2765.554688
year=
5,hour=
50,salary double
=2765.555000
0.00
//在不指定小數字數的情況下,整型變數被賦予浮點數之後,pinrtf 函式可以雙精度浮點型別輸出結果,在指定小數字數情況下,錯誤輸出 0.00 ??經驗證,將printf("%.2lf\n",salary)更改為printf("%lf\n",salary)後,輸出結果仍然有誤(0.000000),作何解釋?更改為printf("%.2f\n",salary)輸出結果仍然有誤(0.00),作何解?而處於迴圈結構體內(salary與salary 均滿足如下四種情形)的printf("year=%d,hour=%d,salary double=%.2f\n",year,hour,salary); 或printf("year=%d,hour=%d,salary double=%.2lf\n",year,hour,salary);或printf("year=%d,hour=%d,salary double=%f\n",year,hour,salary); 或printf("year=%d,hour=%d,salary double=%lf\n",year,hour,salary);均未報錯,資料數值同上,作何解?
----
----
----
----
----
----
----
----
process exited after 4.201 seconds with return value 0
press any key to continue..
.
當輸入為 year=5 hour=40時,程式輸出結果為:
5
40year=
5,hour=
40,salary integer=
2000
year=
5,hour=
40,salary integer=
0//如何解釋 salary 輸出 0
year=
5,hour=
40,salary float
=2000.000000
year=
5,hour=
40,salary float
=2000.000000
year=
5,hour=
40,salary double
=2000.000000
year=
5,hour=
40,salary double
=2000.000000
0.00
----
----
----
----
----
----
----
----
process exited after 5.033 seconds with return value 0
press any key to continue..
.
程式設計每日一題 C程式設計 年份閏年 平年判斷
描述 輸入年份,判斷該年份是平年還是閏年。普通閏年 年份數值為4的倍數,且不是100的倍數。世紀閏年 公曆年份是整百數,且是400的倍數。正確解法一 巢狀判斷,滿足條件即輸出判斷結果 include intmain else printf the year d is normal year.n ye...
C 每日一題
題目 給定乙個陣列 nums 和乙個值 val 你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成,oj鏈結.解析 我們來解析一下這個題目的做題思路,他的含義就是讓我們刪除掉陣列中的元素,然後將陣...
每日一題 47 計算糖果
a,b,c三個人是好朋友,每個人手裡都有一些糖果,我們不知道他們每個人手上具體有多少個糖果,但是我們知道以下的資訊 a b,b c,a b,b c.這四個數值.每個字母代表每個人所擁有的糖果數.現在需要通過這四個數值計算出每個人手裡有多少個糖果,即a,b,c。這裡保證最多只有一組整數a,b,c滿足所...