1、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。#include void main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2;x2=x1;day-;printf(“total=%dn“,x1);运行结果:total=1534编写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个函数由键盘输入。解:设两个整数为 u
2、 和 v,用辗转相除法求最大公约数的算法如下:if vu将变量 u 与 v 的值互换While (u/v 的余数 r 不等于 0)u=vv=r输出最大公约数 r最小公倍数 l=u*v/最大公约数 r。据此写程序:#include void main()int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf(“%d,%d“,h=hcf(u,v);printf(“H.C.F=%dn“,h);l=lcd(u,v,h);printf(“L.C.D=%dn“,l);int hcf(int u,int v)int t,r;if(vu)t=u;u=v;
3、v=t;while(r=u%v)!=0)u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);getch();运行结果如下:24,16 (输入两个整数)H.C.F=8L.C.D=48定义一个结构体变量(包括年、月、日) 。计算该日在本年中是第几天,注意闰年问题。#include structint year;int month;int day;date;void main()int days;printf(“input year,month,day:“);scanf(“%d,%d,%d“,switch(date.month)case
4、 1:days=date.day;break;case 2:days=date.day+31;break;case 3:days=date.day+59;break;case 4:days=date.day+90;break;case 5:days=date.day+120;break;case 6:days=date.day+151;break;case 7:days=date.day+181;break;case 8:days=date.day+212;break;case 9:days=date.day+243;break;case 10:days=date.day+273;break;case 11:days=date.day+304;break;case 12:days=date.day+334;break;if(date.year%4=0printf(“%d/%d is the %dth day in %d.n“,date.month,date.day,days,date.year);运行情况如下:input year,month,day :2008 ,8,88/8 is the 221th day in 2008.