一·PTA實驗作業
題目1:計算存款利息
本題目要求計算存款利息,計算公式為interest=money×(1+rate)year−money,其中interest為存款到期時的利息(稅前),money是存款金額,year是存期,rate是年利率。
1·設計思路
- 第一步:定義變量 money rate year interest
- 第二步:計算 inserest 的值
- 第三步:輸出 inserest
2·實驗代碼
scanf("%d %f %f",&money,&year,&rate);
a=pow((1+rate),year);
interest = money*a-money;
printf("interest = %.2f",interest);
3·遇到的問題及解決方法:
- 編譯錯誤:
scanf("%d %d %d",&money,&year,&rate);
解決方法:float 定義的變量輸入應改為 %f - 答案錯誤:(1+rate)^year
解決方法:計算數的冪次方應用 pow 函數

題目2:輸出華氏-攝氏溫度轉換表
輸入2個正整數lower和upper(lower≤upper≤100),請輸出一張取值范圍為[lower,upper]、且每次增加2華氏度的華氏-攝氏溫度轉換表。
溫度轉換的計算公式:C=5×(F−32)/9,其中:C表示攝氏溫度,F表示華氏溫度。
1·設計思路
- 第一步:定義 fahr celsius
- 第二步:利用 for 循環多次計算華氏和攝氏溫度的轉換
- 第三步:到達最大值時輸出對應的 fahr 和 celsius
2·實驗代碼
#include<stdio.h>
int main(){
int i,lower,upper,fahr;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower<=upper&&upper<=100){
printf("fahr celsius\n");
for(i=lower;i<=upper;i+=2){
celsius=5.0*(i-32)/9.0;
printf("%d%6.1f\n",i,celsius);
}
}else{
printf("Invalid.");
}
return 0;
}
3·遇到的問題及解決方法
- 多種錯誤:程序無法跳出循環
解決方法:改變 for 循環中的變量 - 部分正確:
celsius=5*(fahr-32)/9;
解決方法:celsius=5.0*(fahr-32)/9.0;

題目3:到底是不是太胖了
據說一個人的標准體重應該是其身高(單位:厘米)減去100、再乘以0.9所得到的公斤數。真實體重與標准體重誤差在10%以內都是完美身材(即 | 真實體重 − 標准體重 | < 標准體重×10%)。已知市斤是公斤的兩倍。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。
1·設計思路
- 第一步:定義身高 h 體重 w 和輸入人數N
- 第二步:利用for循環多次輸入h w
- 第三步:利用 if-else 分支判斷胖瘦
- 第四步:輸出對應語句
2·實驗代碼
for(i=1;i<=N;i++){
scanf("%d%d",&h,&w);
a=(h-100.0)*1.8;
if(fabs(w-a)<a*0.1){
printf("You are wan mei!\n");
}else if((a-w)>=a*0.1){
printf("You are tai shou le!\n");
}else{
printf("You are tai pang le!\n");
}
3·遇到問題及解決方法
- 編譯錯誤:
for(i=1,i<=N,i++)
解決方法:改為for(i=1;i<=N;i++) - 部分正確:讀題時產生偏差
else if((a-w)>a*0.1)
解決方法:else if((a-w)>=a*0.1)

心得體會
- 寫程序時應該更為注意 scanf for 等語句的用法
- 讀題應更為認真 ,避免小失誤
