【程序1】
题目:古典题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假定兔子都不死,问每个月的兔子总数为几 ?
1,程序解析:兔子的规律为数列1,1,2,3,5,8,13,21,…
2,程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf(“%12ld %12ld”,f1,f2);
if(i%2==0) printf(“\n”);操纵输出,每行四个
f1=f1+f2;前两个月加起来赋值给第三个月
f2=f1+f2;前两个月加起来赋值给第三个月
}
}
【程序2】
题目:判断101-200之间有几 个素数,同时输出全部素数.
1,程序解析:判断素数的方式:用一个数分不去除2到sqrt(那个数),介入能被整除,那么 表明此数不是 素数,反之是 素数.
2,程序源代码:
#i nclude “math.h”
main()
{
int m,i,k,h=0,leap=1;
printf(“\n”);
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i0)
{leap=0;break;}
if(leap) {printf(“%-4d”,m);h++;
if(h%100)
printf(“\n”);
}
leap=1;
}
printf(“\nThe total is %d”,h);
}
【程序3】
题目:打印出全部的“水仙花数”,所谓“水仙花数”是 指一个三位数,其列位数字立方和等于该数自已.例似:153是 一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方.
1,程序解析:操纵for循环操纵100-999个数,每个数分化出个位,十位,百位.
2,程序源代码:
main()
{
int i,j,k,n;
printf(“'water flower’number is:”);
for(n=100;n<1000;n++)
{
i=n100;分化出百位
j=n10%10;分化出十位
k=n%10;分化出个位
if(i100+j10+k==iii+jjj+kkk)
{
printf(“%-5d”,n);
}
}
printf(“\n”);
}
【程序4】
题目:将一个正整数分化质因数.例似:输入90,打印出90=233*5,
程序解析:对n履行分化质因数,应先找到一个最小的质数k,接着按下述步调实现:
(1)介入那个质数恰等于n,那么讲明分化质因数的环节差不多终了,打印出即可.
(2)介入n<>k,但n能被k整除,那么应打印出k的值,同时用n除以k的商,做为新的正整数你n,重复履行第一步.
(3)介入n不能被k整除,那么用k+1做为k的值,重复履行第一步.
2,程序源代码:
- zheng int is divided yinshu*
main()
{
int n,i;
printf(“\nplease input a number:\n”);
scanf(“%d”,&n);
printf(“%d=”,n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i0)
{ printf(“%d*”,i);
n=ni;
}
else
break;
}
}
printf(“%d”,n);}
==============================================================
【程序5】
题目:操纵前提运算符的嵌套来实现此题:进修成绩>=90分的同学用A示意,60-89分之间的用B示意,60分以下的用C示意.
1,程序解析:(a>b)? a:b这是 前提运算符的根本例子.
2,程序源代码:
main()
{
int score;
char grade;
printf(“please input a score\n”);
scanf(“%d”,&score);
grade=score>=90? ‘A’:(score>=60? ‘B’:‘C’);
printf(“%d belongs to %c”,score,grade);
}
==============================================================
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数.
1,程序解析:操纵辗除法.
2,程序源代码:
main()
{
int a,b,num1,num2,temp;
printf(“please input two numbers:\n”);
scanf(“%d,%d”,&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)操纵辗除法,直到b为0为止
{
temp=a%b;
a=b;
b=temp;
}
printf(“gongyueshu:%d\n”,a);
printf(“gongbeishu:%d\n”,num1*num2a);
}
==============================================================
【程序7】
题目:输入一行字符,分不统计出其中英文字母、空格、数字和其它字符的个数.
1,程序解析:操纵while语句,前提为输入的字符不为’\n’.
2,程序源代码:
#i nclude “stdio.h”
main()
{char c;
int letters=0,space=0,digit=0,others=0;
printf(“please input some characters\n”);
while((c=gainchar())!=‘\n’)
{
if(c>=‘a’&&c<=‘z’||c>=‘A’&&c<=‘Z’)
letters++;
else if(c’ ')
space++;
else if(c>=‘0’&&c<=‘9’)
digit++;
else
others++;
}
printf(“all in all:char=%d space=%d digit=%d others=%d\n”,letters,
space,digit,others);
}