程序设计练习题及代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计基础题

3.1鸡兔同笼一共有40只脚,求鸡兔各有多少只,总共有多少种组合。

#include

main()

{

int i,j,x=0;

for(i=0;i<=10;i++)

{

for(j=0;j<=20;j++)

{

if((4*i+2*j)==40)

{

printf("兔的只数为:%d 鸡的只数:%d\n",i,j);

x++;

}

}

}

Printf("组合数:%d\n",x);

}

3.2换零钱.把一元钱全兑换成硬币(1分2分5分),有多少种兑换方法

#include

main()

{

int one,two,five;

for(one=1;one<=100;one++)

{

for(two=0;two<=50;two++)

{

for(five=0;five<=20;five++)

{

if(one+2*two+5*five==100)

{

printf("一分:%d 二分:%d 五

分:%d\n",one,two,five);

}

}

}

}

}

3.3已知A>B>C>0,A,B,C为整数,且A+B+C<100。求满足1/A2 + 1/B2= 1/C2的A,B,C共有多少组。

#include

main()

{

int A,B,C;

for(A=1;A<100;A++)

{

for(B=1;B<100;B++)

{

for(C=1;C<100;C++)

{

if(((A+B+C)<100)&&((1.0/(A*A))+(1.0/(B*B))==(1.0/(C*C))))

{

printf("A=%d B=%d C=%d\n",A,B,C);

}

}

}

}

}

3.4设abcd*e=dcba,(a非0,e非0非1),求满足条件的整数abcd与e

#include

main()

{

int a,b,c,d,e;

for(a=1;a<9;a++){

for(b=0;b<9;b++){

for(c=0;c<9;c++){

for(d=0;d<9;d++){

for(e=2;e<9;e++){

if(((a*1000+b*100+c*10+d))*e==(d*1000+c*100+b*10+a)){

printf("a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);

}

}

}

}

}

}

}

3.5因子之和等于它本身的数为完数。如:28的因子是1,2,4,7,14,且1+2+4+7+14=28,则28为完数。求[2,1000]中的完数。

#include

main()

{

int i,j,x;

for(i=2;i<=1000;i++)

{

x=0;

for(j=1;j

{

if(i%j==0)

{

x=x+j;

}

}

if(x==i)

{

printf("%d\n",i);

}

}

}

3.6将一个整数分解为1、质因子或本身之积。如5=1*5,8=1*2*2*2

#include

main()

{

int x,i=2,j;

scanf("%d",&x);

printf("%d=1",x);

while(x!=1)

{

if(x%i==0)

{

printf("*%d",i);

x=x/i;

}

else

{

i++;

}

}

}

3.7求1000以内亲密数对。亲密数对的定义是:若正整数a的所有因子之和为b,b的所有因子之和为a,且a!=b,则称ab互为亲密数对。

如:220的因子之和1+2+4+…+110=284

284的因子之和1+2+…+142=220

#include

main()

{

int i,j,k;

int x,y,n,m;

int a[100],b[100];

for(i=7;i<1000;i++)

{

x=0,y=0,n=0,m=0;

for(j=2;j

{

if(i%j==0)

{

a[n++]=j;

x=x+j;

}

}

for(j=2;j

{

if(x%j==0)

{

b[m++]=j;

y=y+j;

}

}

if(y==i&&i

{

printf("%d的因子之和为:1",i);

for(k=0;k

{

printf("+%d",a[k]);

}

printf("=%d\n",x);

printf("%d的因子之和为:1",x);

for(k=0;k

{

printf("+%d",b[k]);

}

printf("=%d\n\n\n",y);

}

}

}

3.8用二分法求方程在(-10,10)之间的根. 2x3-4x2+3x-6=0 #include

#include

main()

{

double x1=-10,x2=10,middle;

double y1,y2,ym;

while((x2-x1)>=0.00001)

{

middle=(x1+x2)/2;

y1=2*pow(x1,3)-4*pow(x1,2)+3*x1-6;

y2=2*pow(x2,3)-4*pow(x2,2)+3*x2-6;

ym=2*pow(middle,3)-4*pow(middle,2)+3*middle-6;

if((y1/ym)>0)

{

x1=middle;

}

else

x2=middle;

}

printf("%lf\n",(x1+x2)/2);

相关文档
最新文档