【程序21】 題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
程序分析:采取逆向思維的方法,從后往前推斷。
程序源代碼:
#include "stdio.h"
#include "conio.h"
main(){
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;/*第一天的桃子數是第2天桃子數加1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
getch();}
——————————————————————————————————————
【程序22】 題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
程序源代碼:
#include "stdio.h"
#include "conio.h"
main(){
char i,j,k;/*i是a的對手,j是b的對手,k是c的對手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='x'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
getch();
}
——————————————————————————————————————
【程序23】 題目:打印出如下圖案(菱形)
程序分析:先把圖形分成兩部分來看待,前四行一個規律,后三行一個規律,利用雙重 for循環,第一層控制行,第二層控制列。
程序源代碼:
#include "stdio.h"
#include "conio.h"
main(){
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
getch();
}
——————————————————————————————————————
【程序24】 題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。
程序分析:請抓住分子與分母的變化規律。
程序源代碼:
#include "stdio.h"
#include "conio.h"
main(){
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=s+a/b;
t=a;a=a+b;b=t;/*這部分是程序的關鍵,請讀者猜猜t的作用*/
}
printf("sum is %9.6f\n",s);
getch();
}
——————————————————————————————————————
【程序25】 題目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加變成了累乘。
2.程序源代碼:
#include "stdio.h"
#include "conio.h"
main(){
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1+2!+3!...+20!=%e\n",s);
getch();
}
更多關于物聯網培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。