程序设计练习题及代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);