六、编程题参考答案
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
for(i=0;i
if(a[i]%a[j]==0&&i!=j) { printf("%d\n",a[i]); break; }
}
?
7. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素。
#include "stdio.h"
#define NA 6
#define NB 8
void main()
{ float a[NA],b[NB]; int i,j;
for(i=0;i
for(i=0;i