標籤:難度 表達 基礎 依次 sum == 倒數 合法性 使用
一.實驗題目,設計思路,實現方法
1.實驗題目
4-6 輸出華氏-攝氏轉換表
4-7 求平方與倒數序列的部分和
4-2-8 判斷天數
2.設計思路
4-6 輸出華氏-攝氏轉換表
先判斷輸入資料是否合法,若不合法則直接輸出。合法則迴圈輸出相應的華氏攝氏溫度表。
4-7 求平方與倒數序列的部分和
先明確題目中的函數如何用C語言表達,再構建出相應的迴圈語句求解即可。
4-2-8 判斷天數
先判斷出閏年和平年的區別,再用switch語句明確寫出各月份累積的天數,最後與該月天數求和即可。
3.實現方法
4-6
本題的考察點是基本的迴圈語句設計。判斷合法性後,就設計一個i<=high,i>=low的i作為for迴圈的基礎,並每次都i+=2,再依次輸出即可。
4-7
本體的考察點是基本的函數構建和迴圈語句。判斷用函數sum = sum + (i*i + 1.0/i)求和後,就使用for迴圈累加再輸出即可。
4-2-8
本體的痛點在於明確各月份的天數,以及判斷閏年平年,再判斷輸入的天數是否大於二月。所以只需要用switch語句預先累加好個月的天數即可。
二.來源程式(可只截取最關鍵的部分)
4-6 輸出華氏-攝氏轉換表
if (lower <= upper) { printf("fahr celsius\n"); for(fahr = lower; fahr <= upper; fahr+=2) { celsius = 5.0*(fahr - 32)/9.0; printf("%d %5.1f\n", fahr, celsius); } } else printf("Invalid.\n");
4-7 求平方與倒數序列的部分和
scanf("%d %d", &m, &n); for(i = m; i <= n; i++) { sum = sum + (i*i + 1.0/i); } printf("sum = %.6f\n", sum);
4-2-8 判斷天數
switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; } sum = sum+day; if (year%400==0||(year%4==0&&year%100!=0)) { p=1; } else { p=0; } if (p==1&&month>2) { sum++; } printf("%d",sum);
三.遇到的問題及解決方案,心得體會
這次的題目總體難度比較親民,沒有文法上的痛點。需要注意的,一是函數的正確與否,應當先確定解體所需要的函數,再將其編入代碼中。同時要考慮該函數的適用範圍,即邊界問題和一些特殊數值的問題。同時,應當謹慎書寫會對結果產生影響的語句,如“printf("%d %5.lf\n")等價於(printf"%d%6.lf\n")”(變數名稱略)。其次,要保證代碼的整潔度問題,若代碼淩亂不堪,則很容易在調試代碼的時候無從下手。
C語言實驗報告