標籤:條件 for bsp 關係運算 stdio.h 解決方案 括弧 輸出 size
一.實驗題目,設計思路,實現方法。
第三次實驗7-7計算火車已耗用時間,
第四次 計算分段函數和迴圈NEW 4-6輸出華氏-攝氏溫度轉換表,
第四次 分支+迴圈 加強版 4.2.7 裝睡。
設計思路:計算火車運行時關鍵在於運算方法,對其進行統一轉化量度,再進行運算。
4-6輸出華氏-攝氏溫度轉換表和4.2.7 裝睡中,都輸入了不定值整數限定處理資料的數量,都需要進行for迴圈使程式中的每個量按順序進行運算,並利用if限定範圍。
實現方法:
1.對於7-7計算火車已耗用時間,關鍵在於運算方法,該題將時間統一轉換為分鐘再對其進行運算,並在輸出使用%02d,使結果在不滿兩位元時前一位補零。
2.對於4-6輸出華氏-攝氏溫度轉換表,按照要求輸入兩個不定值整數,通過條件判斷限定範圍,再通過for迴圈運行,最後按照要求輸出。(注意一個攝氏溫度celsius佔據6個字元寬度,靠右對齊,保留1位小數。)
3.對於4.2.7 裝睡,按照要求輸入一個不定值整數,並且該整數決定了接下來需要處理的資料的量,為了方便我們成批的輸出,引入數組這個概念。再通過for迴圈中嵌入if語句進行判斷,最後成批輸出。
二.來源程式
第三次實驗7-7計算火車已耗用時間:
#include<stdio.h>
int main()
{
int x, y;
int hour, minute;
scanf("%d %d",&x,&y);
x=x/100*60+x%100;
y=y/100*60+y%100;
hour=(y-x)/60;
minute=(y-x)%60;
printf("%02d:%02d",hour,minute);
return 0;
}
第四次 計算分段函數和迴圈NEW 4-6輸出華氏-攝氏溫度轉換表
#include<stdio.h>
int main()
{
int fahr, lower, upper;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower<=upper&&upper<=100){
printf("fahr celsius\n");
for(fahr=lower; fahr<=upper; fahr+=2){
celsius = 5.0 * (fahr -32) / 9.0;
printf("%d%6.1lf\n", fahr, celsius);
}
}else{
printf("Invalid.");
}
return 0;
}
第四次 分支+迴圈 加強版 4.2.7 裝睡。
#include<stdio.h>
char name[9];
int main()
{
int n,r,t,i;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
scanf("%s %d %d\n",name,&r,&t);
if(r<15||r>20||t<50||t>70)
{
printf("%s\n",name);
}
}
return 0;
}
三.遇到的問題及解決方案,心得體會
1.對許多輸出中特定的輸出格式(%02d,%6.1lf,%s)未能瞭解其含義,最終通過查閱書籍等方法解決。
2.忽略了對輸出是字元的考慮,依舊使用int導致錯誤,後通過與同學的交流,得以解決。
3.對關係運算子的運用不夠熟練,(例lower<=upper&&upper<=100)對其串連符號不瞭解,後通過百度以及助教幫忙,得以掌握。
4.對數組char[ ]的不瞭解,後通過同學得知括弧內數字決定,該數組儲存資料的數量。
總而言之,這幾次實驗使我明白,寫程式需要細心檢查,每一個小錯誤,都能造成一個大問題,並且想問題不要理所當然,很多問題就出在這。
C語言實驗報告