本程序應(yīng)先找出變量間的關(guān)系,這樣就基本上沒有什么問題了。另外,要明確第1天桃子數(shù)和第2天桃子數(shù)之間的關(guān)系,即第2天桃子數(shù)加1的2倍等于第一天的桃子數(shù)。
實(shí)現(xiàn)過(guò)程如下:
(1)創(chuàng)建一個(gè)C文件。
(2)引用頭文件。
#include <stdio.h>
(3)定義day、x1、x2為基本整型,并為day、x2賦初值9和1。
(4)使用while語(yǔ)句從后向前推出第一天摘的桃子數(shù)。
(5)將最終求出的結(jié)果輸出。
(6)主要程序代碼如下:
main()
{
int day,x1,x2; /*定義day、x1、x2 3個(gè)變量為基本整型*/
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2; /*第1天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/
x2=x1;
day--; /*因?yàn)閺暮笙蚯巴铺鞌?shù)遞減*/
}
printf("the total is %d\n",x1); /*輸出桃子的總數(shù)*/
}
DIY:在屏幕上輸出3行“*”,每行3個(gè)。提示:使用循環(huán)語(yǔ)句。(25分)(實(shí)例位置:光盤\mr\01\qjyy\03_diy)
1.8.4 情景應(yīng)用4——陽(yáng)陽(yáng)買蘋果
視頻講解:光盤\mr\lx\01\陽(yáng)陽(yáng)買蘋果.exe
實(shí)例位置:光盤\mr\01\qjyy\04
陽(yáng)陽(yáng)買蘋果,每個(gè)蘋果0.8元,第1天她買兩個(gè)蘋果,第2天開始每天買前一天的2倍,直到購(gòu)買的蘋果個(gè)數(shù)達(dá)到不超過(guò)100的最大值,編程求陽(yáng)陽(yáng)每天平均花多少錢。
程序運(yùn)行結(jié)果如圖1.38所示。
解決本實(shí)例首先來(lái)分析題目要求,假設(shè)每天購(gòu)買的蘋果數(shù)為n,花的錢數(shù)總和為money,那么money和n之間的關(guān)系可以通過(guò)一個(gè)等式來(lái)說(shuō)明,即money=money+0.8*n,它的具體含義是截止到目前所花的錢數(shù)等于今天所購(gòu)買的蘋果花的錢數(shù)與之前所花的錢數(shù)的總和。這里應(yīng)注意n的變化,n初值應(yīng)為2,隨著天數(shù)每天增加(day++),n值隨之變化,即n=n*2,以上過(guò)程應(yīng)在while循環(huán)體中進(jìn)行,那么什么才是這個(gè)while語(yǔ)句結(jié)束的條件呢?根據(jù)題意可知為“購(gòu)買的蘋果個(gè)數(shù)應(yīng)是不超過(guò)100的最大值”,那么很明顯n的值是否小于100就是判斷這個(gè)while語(yǔ)句是否執(zhí)行的條件。
實(shí)現(xiàn)過(guò)程如下:
(1)創(chuàng)建一個(gè)C文件。
(2)引用頭文件。
#include <stdio.h>
(3)定義變量n、day為基本整型并賦初值分別為2和0,定義變量money、ave為單精度型,并給money賦初值為0。
(4)使用while語(yǔ)句實(shí)現(xiàn)每天所買蘋果錢數(shù)的累加和天數(shù)自加以及每天所買蘋果數(shù)的變化。
(5)求出平均數(shù)并將其輸出。
(6)主要程序代碼如下: