一、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
#include <stdio.h>
int main()
{
int month[23];
int i;
month[0]=month[1]=1;
for(i=0;i<24;i++)
{
if(i==0 || i==1)
printf("%2d: 2只
", i+1);
else
month[i]=month[i-1]+month[i-2];
printf("%2d: %d只
", i+1, 2*month[i]);
}
getch();
}
#include <stdio.h>
int Rabbit(int n)
{
if (n==1 || n==2)
return 2;
else if (n==0)
return 0;
else
return Rabbit(n-1)+Rabbit(n-2);
}
int main(int i)
{
printf("输入查寻月份: ");
scanf("%d",&i);
printf("%d月: %ld", i, Rabbit(i));
getch();
}
二、打印九九乘法表
#include <stdio.h>
int main()
{
int i,j,temp;
for (i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
temp=i*j;
printf("%d*%d=%d ", j, i, temp);
}
printf("
");
}
getch();
}
三、判断是某天是该年第几天
int main()
{
int n, year, month, day, days, sum;
int month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf ("请输入"year month day": ");
scanf ("%d %d %d", &year, &month, &day);
if ((year%400==0) || (year%4==0&&year%100!=0))
month_day[2]=29;
for (n=0;n<month;n++)
{
days+=month_day[n];
sum=days+day;
}
printf ("该天是:%d", sum);
getch();
}
四、求最大公倍数
#include <stdio.h>
int gcd(int, int);
int main()
{
int a,b,temp;
scanf("%d %d", &a, &b);
if (a<b)
{
temp=a;
a=b;
b=a;
}
printf("GAD is : %d", gcd(a, b));
getch();
}
int gcd(int a, int b)
{
if(!b)
return a;
else
return gcd(b, a%b);
}
五、判断回文
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[1001];
int len, flag, i;
while(scanf("%s",str) != EOF)
{
flag = 1;
len = strlen(str);
for(i = 0; i < len/2; i ++)
{
if(str[i] != str[len - 1 -i])
{
flag = 0;
break;
}
}
if(flag)
printf("Yes!
");
else
printf("No!
");
}
return 0;
}
六、求s=a+aa+aaa+aaaa+aa...a的值(长整型数据表示范围为4294967296,因此当次数输入超过10次或者:次数为10次且a>3时会发生溢出。)
#include<stdio.h>
int main()
{
int a,n,i,M;
long sum;
printf("请输入一个个位数和运算的次数:
");
scanf("%d%d",&a,&n);
if((n>10)||((n==10)&&(a>3)))
{
printf("error!
");
getch();
return 0;
}
if(n==1)
sum=a;
else
{
M=a*10+a;
sum=a+M;
for(i=1;i<(n-1);i++)
{
M=M*10+a;
sum=sum+M;
}
}
printf("结果为:%ld
",sum);
getch();
return 0;
}
七、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include<stdio.h>
#include<string.h>
void printchar(char *pc,int n)
{
char *px;
px=pc-1;
printf("%c",*pc);
if(n!=0)
printchar(px,n-1);
}
int main()
{
char c[1000];
int length;
printf("输入一串字符:
");
scanf("%s",c);
length=strlen(c);
printchar(&c[length-1],length);
getch();
return 0;
}
八、求字符串的长度
#include<stdio.h>
int str_len(char *p)
{
int i=0;
while(*(p+i)!='