C語言第五次作業

2022-06-04 03:24:06 字數 4049 閱讀 7931

(一)改錯題

輸出華氏攝氏溫度轉換表:輸入兩個整數lower和upper,輸出一張華氏攝氏溫度轉換表,華氏溫度的取值範圍是,每次增加2℉。計算公式如下:++c = 5×(f-32)/9++。

其中,c表示攝氏溫度,f表示華氏溫度。

輸入輸出樣例1:

enter lower:32

enter upper:35

fahr celsius

32 0.0

34 1.1

輸入輸出樣例2:

enter lower:40   enter upper:30

fahr celsius

源程式(有錯誤的程式)

int main(void)

錯誤資訊 1:

錯誤原因 :

for括號中前倆個只能是分號而不是逗號

改正方法:

把括號裡面的逗號改成分號,把括號外面的分號去掉。

錯誤資訊 2:

錯誤原因:

輸出結果不正確,回頭發現for後面缺少了倆個大括號「{}」。

錯誤資訊 3:

改正方法:

把%3.0f, %6.1f改成%d和%:1f。

錯誤資訊 4:

錯誤原因:

應該把 「/9」放在後面,下面的是給出的正確的計算公式。

改正方法:

把公式按照格式來寫。

錯誤資訊 5:

錯誤原因:

輸出的組距多出來了,迴圈應該是+2而不是+1。

改正方法:把fahr++改成fahr+=2。

(二)學習總結

1int main()

else

}printf("%d %d",even,odd);

return 0;

}第一步:定義變數i,num,odd,even

第二步:賦值odd = 0

第三步:賦值even = 0

第四步:定義i = 1

第五步:執行i<=10

第六步:輸入num

第七步:判斷是否 num % 2 == 0

第八步:執行even加1,或者odd加1

第九步:執行i++

第十步:判斷是否i<=10

第十一步:輸入sum

第十二步:判斷是否 num % 2 == 0

第十三步:執行even加1,或者odd加1

最後一步:i=11,判斷i>10,然後輸出even和odd的結果

功能:實現10個數的奇數偶數分類

2.增量運算子

(1)執行下面程式,結果是什麼?增量運算子在單獨使用時,字首和字尾形式有區別嗎?

int main()

執行結果:

執行結果:

增量運算子在單獨使用時沒有影響。

(2)int main()

執行結果:

最後的結果是:i=2,j=3。i++為字尾的形式,先執行的是輸出i=2,然後再執行i ++,所以輸出的是i=2;++j為字首,先執行j=2,j+1,然後再執行輸出,所以輸出的結果是j=3。這說明字首和字尾在語句裡面的時候所表達的含義是不同的,當它們單獨使用時沒有區別,所以在我們用的時候我們要注意是在語句裡面還是在語句外面。

3 迴圈語句後面有{}是否有影響?

int main()

執行結果:

int main()

執行結果:

int main()

return 0;

}執行結果:

int main()

printf("\n");

return 0;

}執行結果:

1,2,4輸出的一行5,而3輸出的是一列5,但是1,2屬於一類for後面沒有{},3,4屬於一類for後面有{}。

為什麼會有不同的結果,這是因為跟{}有關,3輸出一列的5 是因為在大括號裡面有迴圈,並且輸出換行在括號裡面,所以每輸入一次就換一次行;而4則與3不同的地方就是輸出換行在括號外面,所以每次輸入就存在了裡面,最後直接輸出的是一行5 。

1和2在縮格上面不同,但是輸出的結果一樣;1和4都輸出了5 *,則證明迴圈體的判定與縮格沒有關係,而與大括號{}有關係。3和4是正確的縮排格式。

所以在我們判斷的時候我們要看for後面有沒有大括號在進行執行。

4 其他總結:

1.在進行逗號運算的時候要從左往右一次運算。

2.迴圈語句的控制條件是break和continue;break只能終止並跳出最近一層的結構。

break只能用於迴圈語句和switch語句中。

在迴圈語句中,break語句一般都是與if語句一起使用。

continue語句只結束本次迴圈,而不是終止整個迴圈的執行。

(三)實驗總結

(1)題目

7-1求奇數分之一序列前n項和:

(2)流程圖

(3)源**

int main()

printf("sum = %f", sum);

return 0;}

(4)實驗分析

問題1:輸出的結果不相等。

原因:item為浮點型,而這樣輸出的整型所以不相等。、

解決辦法:把1改成1.0,或者在denominator前面加double()。

(5)本題pta提交列表

(1)題目

7-3奇偶分家

(2)流程圖

(3)源**

int main()

else if(s >= 97 && s <= 122)

else if(s == 32 || s == 10)

else if(s >= 48 && s <= 57)

else

}printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);

return 0;}

(4)實驗分析

在統計字元的時候我們要用到迴圈裡面的鑲嵌,我們既可以用字母來表示也可以用asllc碼來表示但是建議用字母來表示這樣好記。在實驗過程中遇到問題就是多注意注意細節,比如:' '英文半形單引號。

(5)本題pta提交列表

(1)題目

7-7 求交錯序列前n項和

(2)流程圖

(3)源**

int main()

else

p++;

q = q + 2;

}printf("%.3f\n", sum);

return 0;

}(4)實驗分析

在我們求交錯序列前n項和的時候,我們要注意一正一負,所以要在迴圈的時候用(-1)的n-1次冪來求比較好。例如:

k=(-1)^(n-1)/j

(5)本題pta提交列表

第五次作業C語言

1.函式的形式編寫二分查詢 方法1 define crt secure no warnings include include int search int arr,int data,int len else if data arr righ else if data arr med else if...

c語言第五次作業

1.實驗 7 1 判斷素數。include include int panduan int c int main void for i 1 i a i return 0 int panduan int c for i 2 i return r 2 設計思路 1 文字描述 第一步 輸入a,每次迴圈用自...

c語言第五次作業

1.實驗 include include intmain if x 1 flag 0 printf no n else printf yes n return0 2設計思路 1 定義整形變數n,i,flag,x 2 利用while迴圈求出素數 3 是素數輸入yes,不是輸入no 3流程圖 3.本題除...