習題4-9 打印菱形圖案 (15分)
本題要求編寫程序,打印一個高度爲n的、由“*”組成的正菱形圖案。
輸入格式:
輸入在一行中給出一個正的奇數n。
輸出格式:
輸出由n行星號“*”組成的菱形,如樣例所示。每個星號後跟一個空格。
輸入樣例:
7
輸出樣例:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
#include <stdio.h>
int main(){
int i,j,k,l,n,m;
printf("輸入奇數:\n");
scanf("%d", &n);
for(k=0,m=1,j=n;k<=n/2;k++,j-=2,m+=2){
for(i=j;i>0;i--)
printf(" ");
for(l=m;l>0;l--)
printf("* ");
printf("\n");
}
for(k=n/2+1,j=3,m=n-2;k<n;k++,j+=2,m-=2){
for(i=j;i>0;i--)
printf(" ");
for(l=m;l>0;l--)
printf("* ");
printf("\n");
}
return 0;
}
習題4-10 猴子喫桃問題 (15分)
一隻猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個;第二天早上又將剩下的桃子喫掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半加一個。到第N天早上想再喫時,見只剩下一個桃子了。問:第一天共摘了多少個桃子?
輸入格式:
輸入在一行中給出正整數N(1<N≤10)。
輸出格式:
在一行中輸出第一天共摘了多少個桃子。
輸入樣例:
3
輸出樣例:
10
#include <stdio.h>
int main(){
int n, sum=1;
scanf("%d", &n);
while(n>1){//共吃了n-1天,還有一天沒喫
printf("第 %d 天, 還剩 %d 桃\n", n, sum);
sum = (sum+1)*2;
n--;
}
printf("第一天, 共摘 %d 桃\n", sum);
return 0;
}