3. 編寫一個(gè)要求用戶輸入數(shù)字的程序。每次輸入后懦铺,程序都將報(bào)告到目前為止,所有輸入的累計(jì)和趴生。當(dāng)用戶輸入0時(shí)阀趴,程序結(jié)束。
(關(guān)于“累計(jì)和”苍匆,一般運(yùn)用“+=”來實(shí)現(xiàn))
4. Daphne以10%的單利投資了100美元刘急。也就是說,每一年的利潤都是投資額的10%,即每年10美元:利息 = 0.10 * 原始存款而Cleo以5%的復(fù)利投資了100美元浸踩。也就是說叔汁,利息是當(dāng)前存款(包括獲得的利息)的5%:利息 = 0.05 * 當(dāng)前存款。Cleo在第一年投資100美元的盈利是5%——得到了105美元检碗。下一年的盈利是105美元的5%——即5.25美元据块,依次類推。請編寫一個(gè)程序折剃,計(jì)算多少年后另假,Cleo的投資價(jià)值才能超過Daphne的投資價(jià)值,并顯示此時(shí)兩個(gè)人的投資價(jià)值怕犁。
5.? 假設(shè)要銷售《C++ For Fools》一書边篮。請編寫一個(gè)程序,輸入全年中每個(gè)月的銷售量(圖書數(shù)量奏甫,而不是銷售額)戈轿。程序通過循環(huán),使用初始化為月份字符串的char*數(shù)組(或string對象數(shù)組)逐月進(jìn)行提示阵子,并將輸入的數(shù)據(jù)儲存在一個(gè)int數(shù)組中思杯。然后,程序計(jì)算數(shù)組中各元素的總數(shù)挠进,并報(bào)告這一年的銷售情況色乾。
6. 完成編程練習(xí)5,但這一次使用一個(gè)二維數(shù)組來存儲輸入——3年中每個(gè)月的銷售量领突。程序?qū)?bào)告每年的銷售量以及三年的總銷售量暖璧。
7.? 設(shè)計(jì)一個(gè)名為car的結(jié)構(gòu),用它存儲下述有關(guān)汽車的信息: 生產(chǎn)商(存儲在字符數(shù)組或string對象中的字符串)攘须、生產(chǎn)年份(整數(shù))漆撞。編寫一個(gè)程序,向用戶詢問有多少輛汽車于宙。隨后浮驳,程序使用new來創(chuàng)建一個(gè)由相應(yīng)數(shù)量的car結(jié)構(gòu)組成的動態(tài)數(shù)組。接下來捞魁,程序提示用戶輸入每輛車的生產(chǎn)商(可能由多個(gè)單詞組成)和年份信息至会。請注意,這需要特別小心谱俭,因?yàn)樗鼘⒔惶孀x取數(shù)值和字符串(參見第4章)奉件。最后,程序?qū)@示每個(gè)結(jié)構(gòu)的內(nèi)容昆著。該程序的運(yùn)行情況如下:
How many cars do you wish to catalog?? ? 2
Car #1:
Please enter the make:? ?Hudson Hornet
Please enter the year made: 1952
Car #2:
Please enter the make:? ?Kaiser
Please enter the year made:? ?1951
Here is your collection:
1952 Hudson Hornet
1951 Kaiser
上述兩個(gè)例子中县貌,區(qū)別在于int i=0或1上,對于一個(gè)car數(shù)組而言凑懂,若num=2煤痕,則是有兩個(gè)元素,但是數(shù)組下標(biāo)最大值應(yīng)該是[1]接谨,而不是[2]摆碉,因此在char類型圖中是錯(cuò)誤的。
面向行的輸入:1.cin.getline(name,20) :第一個(gè)參數(shù)是用來存儲輸入行的數(shù)組的名稱脓豪。第二個(gè)元素是要讀取的字符? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)巷帝。getline()將丟棄換行符。它通過換行符來確定行尾扫夜,但不保存換行符楞泼。
? ? ? ? ? ? ? ? ? ? ? ? ? 2.cin.get():可以與getline一樣賦值兩個(gè)參數(shù),這種情況下讀取換行符并將其留在輸入隊(duì)列中历谍。還有? ? ? ? ? ? ? ? ? ? ? ? ? ? 另一種情況是不需要賦值现拒。此時(shí),該語句之前有一句是cin>>num輸入望侈,這句輸入將回車鍵生成的換? ? ? ? ? ? ? ? ? ? ? ? ? ? 行符留在了輸入隊(duì)列中印蔬,若不加cin.get(),則后面的getline()看到換行符后脱衙,將認(rèn)為這是一個(gè)空行侥猬,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 并將空字符串付給ptr[i].productCompany。后面的cin>>ptr[i].year之后的cin.get()也是同理的解釋捐韩。
下面是將一行輸入讀取到數(shù)組中的代碼:cin.getline(charr,20);
下面是將一行輸入讀取到string對象中的代碼:getline(cin,str)退唠;
8. 編寫一個(gè)程序,它使用一個(gè)char數(shù)組和循環(huán)來每次讀取一個(gè)單詞荤胁,直到用戶輸入done為止瞧预。隨后,該程序指出用戶輸入了多少個(gè)單詞(不包括done在內(nèi))。下面是該程序的運(yùn)行情況: 您應(yīng)該在程序中包含頭文件cstring,并使用函數(shù)strcmp()來進(jìn)行比較測試垢油。
Enter words (to stop, type the word done):
anteater birthday category dumpster
envy finagle geometry done for sure
You entered a toal of 7 words.
strcmp(地址1盆驹,地址2):若字符串內(nèi)容相同,則返回值0滩愁,也就是false躯喇。
9.? 編寫一個(gè)滿足前一個(gè)練習(xí)中描述的程序,但使用string對象而不是字符數(shù)組硝枉。請?jiān)诔绦蛑邪^文件string廉丽,并使用關(guān)系運(yùn)算符來進(jìn)行比較測試。
10. 編寫一個(gè)使用嵌套循環(huán)的程序妻味,要求用戶輸入一個(gè)值正压,指出要顯示多少行。然后责球,程序?qū)@示相應(yīng)的行數(shù)的星號蔑匣,其中第一行包括一個(gè)星號,第二行包括兩個(gè)星號棕诵,依次類推裁良。每一行包含的字符數(shù)等于用戶指定的行數(shù),在星號不夠的情況下校套,在星號前面加上句點(diǎn)价脾。該程序的運(yùn)行情況如下:
Enter number of rows: 5
….*
…**
..***
.****
*****