1,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子不死,问每个月的兔子总数是多少?
#include <stdio.h>
int main(){
int i;
long f1,f2;
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,判断100-200之间有多少个素数,并输出所有素数。
#include <stdio.h>
#include <math.h>
int main(){
int m,i,k,h=0,leap=1;
printf("\n");
for(m=100;m<=200;m++){
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0){
leap=0;
break;
}
if(leap){
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\n共有多少 %d个素数",h);
}
3,打印水仙花数 ,例如153=1*1*1+5*5*5+3*3*3 。
#include <stdio.h>
int main(){
int i,j,k,n;
printf("水仙花数是:");
for(n=0;n<1000;n++){
i=n/100;//百位
j=n/10%10;//十位
k=n%10;//个位
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){
printf("%-5d",n);
}
}
}
4,将一个正整数分解质因数,例如90=2*3*3*5 。
#include <stdio.h>
int main(){
int n,i;
printf("请输入一个数:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++){
while(n!=i){
if(n%i==0){
printf("%d",i);
printf("*");
n=n/i;
}
else
break;
}
}
printf("%d",n);
}
5,成绩等级, A:>=90; B:60-89; C:60分以下。
#include <stdio.h>
int main(){
int score;
char grade;
printf("请输入一个分数:\n");
scanf("%d",&score);
grade=score>=90?'A':(score>=60?'B':'C');
printf("%d属于%c",score,grade);
return 0;
}
6,输入两个正整数,求其最大公约数和最小公倍数。
#include <stdio.h>
int main(){
int a,b,n1,n2,temp;
printf("请输入两个数:\n");
scanf("%d,%d",&n1,&n2);
if(n1<n2){
temp=n1;
n1=n2;
n2=temp;
}
a=n1;
b=n2;
while(b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数:%d\n",a);
printf("最小公倍数:%d\n",n1*n2/a);
}
7,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符个数。
#include <stdio.h>
int main(){
char c;
int letters=0,space=0,digit=0,others=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\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("char=%d,space=%d,digit=%d,others=%d\n",letters,space,digit,others);
}
8,求s=a+aa+aaa+aaaa+aa....a。
#include <stdio.h>
int main(){
int a,n,count=1;
long int sn=0,tn=0;
printf("请输入a和n:\n");
scanf("%d,%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
while(count<=n){
tn=tn+a;
sn=sn+tn;
a=a*10;
++count;
}
printf("a+aa+aaa+a...a=%ld",sn);
}
9,找出1000以内的所有完数(一个数如果恰好等于它的因子之和,6=1+2+3)。
#include <stdio.h>
int main(){
int i,j,n;
for(i=0;i<1000;i++){
n=0;
for(j=1;j<i;j++)
if(i%j==0)
n=n+j;
if(n==i)
printf("%d是完数\n",i);
}
return 0;
}
10,一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它第10次落地时,共经过多少米?第10次反弹多高?
#include <stdio.h>
int main(){
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++){
sn=sn+2*hn;//第n次落地时共经过的米数
hn=hn/2;//第n次反弹高度
}
printf("共经过%f米\n",sn);
printf("第10次反弹%f米\n",hn);
}