最新《C语言程序设计》(江宝钏著)实验五答案 下载本文

精品文档

q=Q(m,n); printf(\ printf(\}

编程题4

编程输出2到10000之间的所有完数。所谓完数是指因子之和与它本身相等的数。如6=1+2+3,6是一个完数。

要求:定义函数 factor(m) 判断m是否为完数;由主函数调用它,来对所有2到10000之间的所有数进行判断。 #include #include int factor(int m) {

int i,s=0; …… }

void main() {

int i,m,sum; …… } 答:

#include #include int factor(int m) { int i,s=0; for(i=1;i

void main() { int i,m,sum; m=10000; for(i=2;i<=m;i++) { sum=factor(i); 精品文档

精品文档 }

if(sum>0) { printf(\ } }

printf(\

3.较难编程题

编程题1 用函数调用实现求两个数的最大公因子和最小公倍数 答:

#include #include int f(int m,int n) { int i; for(i=1;;i++) { if(m==n)break; if(m>n) m=m-n; else n=n-m; } return n; }

int g(int x,int y,int z) { int i; i=x*y/z; return i; }

void main() { int a,b,c,d; scanf(\ c=f(a,b); d=g(a,b,c); printf(\最大公因子:%d\\n\ printf(\最小公倍数:%d\\n\}

编程题2 用递归方法求1+2+3+...+n并将其中素数去除后之和。 精品文档

精品文档

#include #include

int isprime (int number) { …… }

long fact(int n) {

…… }

void main() {

int m,sum; …… } 答:

#include #include

int isprime (int number) { int i; for(i=2;i

long fact(int n) { long result,a; if(n==1) result=1; else { 精品文档

精品文档

a=isprime(n); result=a+fact(n-1); } return result; }

void main() { int m,sum; scanf(\ sum=fact(m); printf(\}

精品文档