目录
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)
验证函数极限 等于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)
验证函数极限
#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)
验证级数收敛于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)
验证级数是发散的。
#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");
}
}
运行结果