一、PTA實驗作業
題目1.溫度轉換
本題要求編寫程序,計算華氏溫度150°F對應的攝氏溫度。計算公式:C=5×(F−32)/9,式中:C表示攝氏溫度,F表示華氏溫度,輸出數據要求為整型。
輸入格式:
本題目沒有輸入。
輸出格式:
按照下列格式輸出
fahr = 150, celsius = 計算所得攝氏溫度的整數值
1.實驗代碼
int celsius,fahr;
fahr = 150;
celsius = 5*(fahr-32)/9;
printf("fahr = 150, celsius = %d",celsius);
2.設計思路
- 第一步:定義celsius,fahr倆個變量,分別表示攝氏溫度和華氏溫度
- 第二步:將150賦值給fahr
- 第三步:運用表達式celsius=5*(fahr-32)/9計算出celsius的值
- 第四步:輸出fahr和celsius的值
3.本題調試過程中碰到的問題及解決辦法
1.格式錯誤
錯誤原因:沒有完全按照題目輸出結果,忽略了等號左右的空格
解決辦法:將題目輸出與自己的仔細對比發現了空格問題
2 答案錯誤
題目要求輸出:fahr = 150, celsius = 計算所得攝氏溫度的整數值
而我的代碼為:printf("fahr = 150,celsius =%d",fahr,celsius);
錯誤原因:慣性思維printf里面出現的變量就在后面表示出來,導致輸出結果為fahr = 150,celsius = 150 因為此時%d對應的是fahr
題目2.將x的平方賦值給y
假設x的值為3,計算x的平方並賦值給y,分別以“y = x ∗ x”和“x ∗ x = y”的形式輸出x和y的值。
輸入格式:
本題無輸入
輸出格式:
按照下列格式輸出代入x=3的結果:
y = x * x
x * x = y
1.實驗代碼
int x,y;
x=3;
y=x*x;
printf("%d = %d * %d\n%d * %d = %d",y,x,x,x,x,y);
2.設計思路
- 第一步:定義變量x,y
- 第二步:將3賦值給x
- 第三步:根據公式y=x*x計算出y的值
- 第四步:按照題目要求輸出結果
3.本題調試時碰到的問題及解決方法
必須完全和題目要求的輸出輸出結果,一個%d對應一個變量,不能出錯,否則出現答案或是格式錯誤
忘記\n,而題目要求倆行輸出,導致結果錯誤
解決辦法
題目3.是不是太胖了
據說一個人的標准體重應該是其身高(單位:厘米)減去100、再乘以0.9所得到的公斤數。已知市斤是公斤的兩倍。現給定某人身高,請你計算其標准體重應該是多少?(順便也悄悄給自己算一下吧……)
輸入格式:
輸入第一行給出一個正整數H(100 < H ≤ 300),為某人身高。
輸出格式:
在一行中輸出對應的標准體重,單位為市斤,保留小數點后1位。
輸入樣例:
169
輸出樣例:
124.2
1.實驗代碼
double H,weight;
scanf("%lf",&H);
weight=(H-100)*0.9*2;
printf("%.1f",weight);
2.設計思路
- 第一步:定義浮點型變量H,weight,分別代表身高和體重
- 第二步:輸入H的值
- 第三步:根據公式weight=(H-100)0.92計算出weight的值
- 第四步:輸出weight的值
3.本題調試時遇到的問題及解決辦法
問題:題目要求輸出的是124.2
我的錯誤輸出
解決辦法
發現輸出的位數與要求輸出的不同,通過課本例題得知應用%.nf形式,通過改變n改變輸入的位數,改正后
題目4.輸出各位數字
給定一個三位正整數,輸出其百位數字、十位數字及個位數字。
輸入格式:
直接輸入一個三位正整數,沒有其它任何附加字符。
輸出格式:
在一行中輸出所輸入正整數的各個位數字,各個數字之間用逗號間隔,沒有其它任何附加字符。
輸入樣例:
258
輸出樣例:
2,5,8
1.實驗代碼
int x,single,tens,hund;
scanf("%d",&x);
hund=x/100;
tens=(x-hund*100)/10;
single=x%10;
printf("%d,%d,%d",hund,tens,single);
2.設計思路
- 第一步:定義變量x,single,tens,hund,分別表示三位數,個位數,十位數,百位數
- 第二步:輸入x
- 第三步:計算。x除以100得到百位數,x對10求余得到個位數,x減去百位數與100的乘積再除以10得到十位數字
- 第四步:按格式輸出這3個數字
3.本題調試遇到的問題及解決方法
問題:如何通過合適的表達式求出這3個數字,尤其是求十位數字
解決方法:用到了整數除整數等於整數和求余這倆種運算
二、截圖本周題目集的PTA提交列表及最后排名


三、本周學習總結
1.你學會了什么?
1.認識函數頭,主函數,了解\n和return 0 的含義
2.運用scanf和printf語句實現輸入,輸出
3.學會調用數學函數
4.用double和float定義浮點型變量,以及浮點數在輸入輸出對應使用%lf,%f
5.%.nf通過n規定輸出時的小數點位數
6.了解順序結構,選擇結構,循環結構
7.簡單了解if-else語句,if else if語句,switch語句
8.什么是字符型數據,如何定義字符型變量,如何輸入輸出字符
9.=是賦值,是等於,a是變量,'a'是字符還有用、>、<、>= 、<= 、 !=表示關系式
2.本周的內容你還不會什么?
變量輸入要求了范圍,不知道如何在代碼中表示(用if語句判斷嗎?)
3.你碰到什么困難,打算如何解決?
知道算法怎么寫,但是轉化成代碼還是需要參考書本。還有通過PTA作業,發現省題不清,多次格式錯誤,答案錯誤,比如第一題的時候因為語言習慣多加了個.導致答案錯誤,系統提示錯誤理由:無話可說。。。。
我認為應該多多練習,提高寫代碼的能力,另外就是寫代碼時更加嚴謹,像格式錯誤和答案錯誤是可以避免的。





