六、编程题参考答案1.编程,统计在所输入的 50 个实数中有多少个正数、多少个负数、多少个零. #include ”stdio。h" #define N 50 void main() { float x; unsigned int s1,s2,s3,i; s1=s2=s3=0; for(i=1;i<=N;i++) { scanf(”%f",&x); if(x<0) s1++; else if(x==0) s2++; else s3++; } printf(”负数%u 个,零%u 个,正数%u 个\n”,s1,s2,s3); } 2. 编程,计算并输出方程 X2+Y2=1989 的所有整数解。 #include "stdio.h" void main() { int x,y; for(x=-45;x<=45;x++) { y=-45; while(y<=45) { if(x*x+y*y==1989) printf("%d*%d+%d*%d=%d\n",x,x,y,y,1989); y++; } } } 3.编程,输入一个 10 进制正整数,然后输出它所对应的八进制、十六进制数. #include "stdio。h" void main() { unsigned int x; printf(”请输入一个十进制正整数:"); scanf(”%u",&x); printf("%d=八进制数 %o=十六进制数%x\n”,x,x,x); } 4.编程,找出 1000 以内的所有完数,并输出其因子。 #include ”stdio。h” void main() { int i,j,s=1; for(i=1;i<=1000;i++,s=1) { for(j=2;j<=i/2;j++) if(i%j==0) s+=j; // 求 i 的因子和 if(s==i) { printf("%d=1”,i); // 假如 i 是完数则输出其各因子 for(j=2;j〈=i/2;j++) if(i%j==0) printf(”+%d",j); printf("\n"); } } } 5. 输入一个正整数,输出它的所有质数因子。 #include "stdio。h” void main() { int m,i=2; printf(”请输入一个整数:”); scanf(”%d”,&m); while(m!=1) if(m%i==0){ printf("%d ”,i); m/=i; } else i++; printf(”\n"); } 6. 输入 20 个整数,输出其中能被数组中其它元素整除的那些数组元素。 #include "stdio.h" #define N 20 void main() { int a[N],i,j; for(i=0;i