c语言作业资料(3)

2019-09-01 16:00

函数作业:

4.4,写一个将整数转换成字符串的函数。 源程序: #include void main() {int i=0,j,x; char c[10],temp; scanf(\while(x!=0) {c[i]=x+'0'; x=x/10; i++;} c[i]='\\0';

for(j=0;j<=i/2;j++)

{temp=c[j];c[j]=c[i-j-1];c[i-j-1]=temp;} for(j=0;j

运行结果:

123

1 2 3

Press any key to continue

4.5写出计算Ackermann函数Ack(m,n)的递归计算函数,对于m>=0,n>=0, Ack(m,n)定义为 Ack(0,n)=n+1

Ack(m,0)= Ack(m-1,1)

Ack(m,n)= Ack(m-1,Ack(m,n-1)), m>0, n>0 源程序: #include int ack(int m,int n) {

if(m==0)

return (n+1); else if(n==0)

return ack(m-1,1); else

return ack(m-1,ack(m,n-1)); }

void main() {int m,n;

printf(\scanf(\%d\

printf(\

4.6分别写出Hermite多项式Hn(x)之值的递推和递归函数,Hn(x)定义如下: H0(x)=1 H1(x)=2*x;

Hn(x)=2*x* Hn-1(x)-2*(n-1) Hn-2(x), x>1 源程序: #include int hermite(int n,int x) {

if(n==0) return 1; if(n==1) return (2*x);

if(x>1)

return (2*x*hermite(n-1,x)-2*(n-1)*hermite(n-2,x)); }

void main()

{int n,x;

printf(\scanf(\%d\

printf(\

运行结果:

input n,x:5 5

hermite(5,5)=80600

Press any key to continue

实验五:

1.某数列为K(n)的定义为:求该数列的第六项k(6)。 k(n)=1 n=1 k(n-1)×2 n为偶数 k(n-1)×3 n为奇数 源程序: #include float k(int n) { int m; if(n==1) m=1;

else if(n%2==0) m=k(n-1)*2; else m=k(n-1)*3; return (m); }

void main( ) {int i;

int j;

printf(\scanf(\

if(i<=0)printf(\else

{j=k(i); printf(\}

2. 写出判断素数的函数,在主函数中输入一序列整数(ctrl+z结束),输出是否是素数的信息。 源程序: #include #include int p(int n); void main() {int n,x,t=0;

while(scanf(\{x=p(n);

if(x==1) {printf(\if(t==0) printf(\} }

int p(int n) {

int i,k; k=sqrt(n);

for(i=2;i<=k;i++) if(n%i==0) return 0; return 1; }

3. 写两个函数,求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。 源程序:

#include int gcd(int n, int m) { int r,t;

if(m

r=m%n;

while(r!=0) {m=n; n=r; r=m%n; } return n;

}

}

int bei( int m,int n ) {

return m * n/ gcd( m, n) ; }

void main() {

int a,b;

printf(\输入两个数\\n\scanf(\

int c=gcd(a,b); int d=bei(a,b);

printf(\最大公约数为:%d\\t\\n最小公倍数为:%d\\n\

}

4.输出Fibonacci序列前20个数,用函数来实现. f(n)=f(n-1)+f(n-2) 当 n>2 f(2)=f(1)=1 当 n=1或n=2 源程序: #include

int f(int n) { int m;

if(n==1||n==2) m=1; else m=f(n-2)+f(n-1); return m;

}

void main( ) {int i; int n;

printf(\scanf(\

if(n<=0) printf(\else

{for (i=1;i<=n;i++) printf(\} }


c语言作业资料(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大物A(二)综合训练

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: