C语言程序设计经典例题(十)

目录

1、乘方运算

2、用C语言程序验证两种极限 (1)

 3、用C语言程序验证两种极限 (2)

4、 用C语言程序验证两种极限(3)

5、用C语言程序验证级数的收敛和发散(1)

6、用C语言程序验证级数的收敛和发散(2)

7、将3阶矩阵转置的程序

8、 斐波那契数列

 9、求10000以内的完全数

10、杨辉三角形 


1、乘方运算

求2^64.

#include<stdio.h>
#include<stdlib.h>
main()
{
	int *a,n,b;
	int i;
	int j;
	a=(int*)malloc(sizeof(int)*200000);
	for(i=0;i<200000;i++)
	a[i]=0;
	a[199999]=1;
	printf("请输入底数:\n");
	scanf("%d",&b);
	printf("请输入指数:\n");
	scanf("%d",&n);
	for(i=1;i<n+1;i++)
	{
		for(j=0;j<200000;j++)
		a[j]*=b;
		for(j=199999;j>=0;j--)
		if(a[j]>=10)
		{
			a[j-1]+=a[j]/10;
			a[j]%=10;
		}
	}
	for(i=0;a[i]==0;i++);
	printf("乘方结果为:\n");
	for(;i<200000;i++)
	printf("%d",a[i]);
	printf("\n");free(a);
 } 

运行结果:

2、用C语言程序验证两种极限 (1)

验证数列1/2,2/3,3/4,...,n/(n+1),...的极限是1

#include<stdio.h>
#include<math.h>
main()
{
	float i;
	double sum1,sum2;
	for(i=1.0;i<1000;i++)
	{
		sum2=i/(i+1.0);
		printf("%f\n",sum2);
	}
}

运行结果

 3、用C语言程序验证两种极限 (2)

验证函数极限\lim_{x \to0 }\frac{sinx}{x}   等于1

#include<stdio.h>
#include<math.h>
main()
{
	int i;
	double sum1,sum2;
	double x,y;
	for(i=2;i<=64;i++)
	{
		sum2=sin(3.14159265/i)/(3.14159265/i);
		printf("%f\n",sum2);
	}
}

运行结果

4、 用C语言程序验证两种极限(3)

验证函数极限\lim_{n \to 0}\frac{1-cosx}{x^{2}}= \frac{1}{2}

#include<stdio.h>
#include<math.h>
main()
{
	int i;
	double sum1,sum2;
	double x,y;
	for(i=2;i<=64;i++)
	{
		sum2=(1.0-cos(3.14159265/i))/((3.14159265/i)*(3.14159265/i));
		printf("%f\n",sum2);
	}
}

运行结果

5、用C语言程序验证级数的收敛和发散(1)

验证级数1+\frac{1}{2}+\frac{1}{4}+...+\frac{1}{2^{n}}+...收敛于2.

#include<stdio.h>
#include<math.h>
main()
{
	int i;
	double sum1=0.0;
	for(i=0;i<=22;i++)
	{
		sum1=sum1+1.0/(pow(2.0,i));
		printf("%f\n",sum1);
	}
}

 运行结果

6、用C语言程序验证级数的收敛和发散(2)

验证级数1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}+...是发散的。

#include<stdio.h>
#include<math.h>
main()
{
	int i;
	double sum1=0.0;
	for(i=1;i<=60000;i++)
	{
		sum1=sum1+(1.0/i);
		printf("%f\n",sum1);
	}
}

 运行结果

 结果分析:在运行结果中,前20个数对应n=1到n=20;后20个数对应n=59981到n=60000.由运行结果可见,随着n值的增加,级数之和越来越大,即使n=60000,级数之和的增加也没有停下来的意思,这表明此级数是个发散级数,不过此级数发散的速度很慢。

7、将3阶矩阵转置的程序

将以下的3阶矩阵转置A=[1  2  3 ,4  5  6 , 7  8  9]

#include<stdio.h>
#include<math.h>
main()
{
	void move(int*pointer);
	int *p,i;
	static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
	p=&a[0][0];
	move(p);
	printf("转置后的矩阵为:\n");
	for(i=0;i<3;i++)
	{
		printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
	}
}
void move(int *pointer)
{
	int i,j,t;
	for(i=0;i<3;i++)
		for(j=i;j<3;j++)
		{
			t=*(pointer+3*i+j);
			*(pointer+3*i+j)=*(pointer+3*j+i);
			*(pointer+3*j+i)=t;
		}
}



运行结果

8、 斐波那契数列

用C语言编写程序显示斐波那契数列的前40个数。

提示:斐波那契数列有如下特点:第一和第二个数为1、1;从第三个数开始,该数是其前面两个数之和。

#include<stdio.h>
main()
{
	long int f1,f2;
	int i;
	f1=1;f2=1;
	for(i=1;i<=20;i++)
	{
		printf("%12ld %12ld",f1,f2);
		if(i%2==0)
			printf("\n");
		f1=f1+f2;
		f2=f2+f1;
	}
	
}

运行结果

 9、求10000以内的完全数

提示:完全数又称完美数、完备数或完数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余三个数相加,1+2+3=6.

#include<stdio.h>
main()
{
	int j,k,sum=0;
	for(k=2;k<=10000;k++)
	{
		sum=0;
		for(j=1;j<k;j++)
		if(k%j==0)
		sum=sum+j;
		if(sum==k)
		printf(" %d ",k);
	}
	printf("\n");
}

运行结果

10、杨辉三角形 

打印呈等腰三角形的杨辉三角形。

#include<stdio.h>
main()
{
	int n,i,j,k,a[20][20];
	printf("请输入行数n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		a[i][1]=1;
		a[i][i]=1;
	}
	for(i=3;i<=n;i++)
		for(j=2;j<=i-1;j++)
		a[i][j]=a[i-1][j-1]+a[i-1][j];
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=40-3*i;k++)
			printf(" ");
		for(j=1;j<=i;j++)
			printf("%6d",a[i][j]);
		printf("\n");
	}
}

运行结果

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值