C語言的習題學習2

2021-10-10 14:26:46 字數 1063 閱讀 8657

致敬老大哥,因為周二出奇的課少,於是今天可以加更一次,爭取追上老大哥的進度。 ≧◇≦

第二題:企業發放的獎金根據利潤提成。利潤(i)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數?

思路:當我們拿到這一題就會很清楚的發現這是乙個初中的函式應用題,考察的是分段函式的相關性質,如果我們拿到題目時感到文字較多,偶感不適,可以將關鍵的資訊圈畫下來,即分段的條件,寫出相應的關係式:

將函式列出,那樣編寫程式的速度必然事半功倍。

解:這一題很顯然需要用到if的選擇語句或者是switch的選擇迴圈語句,我個人比較喜歡if,但現實總是殘酷的,萬一題目規定用switch怎麼辦,於是我只能咬咬牙,兩個都做一遍。 啊啊啊~~:-(

#include

main()

這是我喜歡的if選擇語句,好吧確實括號寫的我頭疼,在做這一題if好像並不簡潔。

#include

main()

/*switch*/

printf

("提成是:%f萬元"

, bonus)

;}

使用switch語句,並沒有想象的這麼可怕,乙個是過程可以優化,另乙個是最後一種條件可以用default代替,省去再寫一遍的麻煩,減少了出錯率。

反思:在使用switch語句的時候,要保證括號裡的字母是整形常量,不然無法執行,同時,可以適當的除以10的冪來減少case的使用,從而簡化**的數量。

好吧,這一題也算是講解完了,嘗試了一下插入**塊,很省時間,就不用拍照或截圖了,如果有小哥哥或小姐姐知道怎麼插入數學符號,請告訴我,我會做的更好的,謝謝 。

C語言遞迴習題 (2)

前幾天發布第一部分,今天是第二部分,謝謝大家支援。一 找出陣列最大值問題 引導 在陣列裡找出最大值,我們將問題拆開來考慮 假設陣列int a 如果我將這陣列分成兩部分,即a 5 和a 0 4 如果判斷a 5 比max a 0 4 還大,那a 5 就是最大的,反之在a 0 4 找出最大的還是按照上面的...

C語言的學習(2)

一 輸入與輸出 c語言本身不提供輸入輸出的相應功能,c語言中的輸入輸出均由 c語言標準輸入輸出庫 來提供 格式轉換說明符 float num 3.1415926f printf 7f num 結果將會輸出3.1415926 小數點後7位 int nun1 12 int num2 321 int nu...

C語言成長學習題(十一)

四十 六 假設一堆陣列中存放不相同的10個整數,從鍵盤輸入乙個整數,輸出與該值相同的陣列元素的下標。1 include 2 3void main void 4 67 printf input x 8 scanf d x 9for i 0 i 10 i 10 printf 4d a i 11 prin...