用C语言程序求100的阶乘

用C语言程序求100的阶乘,第1张

#include <stdioh>

main()

{

int i,j,sum=1;

int count=0;

for(i=1;i<=100; i++)

{ sum=1;

for(j=1;j<=i;++j)

{ sum=j;}

count+=sum;

}

printf("%d",count);

}

#include <stdioh>

double mult(double x)

{

double a=20,b=-30,c=50;

return(((xa)x+b)x+c);

}

void main()

{

double x0;

double delta=10;

double first=00;

double last=100;

double (f)( double );

double mult(double x);

f= mult;

x0=first;

while(x0<=last)

{ printf("f(%lf)=%lf\n",x0,f(x0));

x0 +=delta;

}

}

你指向函数名的指针参数为f(void)和mult(double)类型不匹配,改成上面这样就可以了

#include <stdioh>

struct fraction{

int nume;

int deno;

};

struct fraction add(struct fraction f1,struct fraction f2);

int divisor(struct fraction);

int main(void)

{

struct fraction f1,f2,f3;

f1nume =1;

f1deno =4;

f2nume =1;

f2deno =4;

f3=add(f1,f2);

printf("%d/%d\n",f3nume,f3deno);

return 0;

}

struct fraction add(struct fraction f1,struct fraction f2)

{

struct fraction tmp1;

struct fraction tmp2;

struct fraction final;

struct fraction finish;

int mult;

int yue;

mult = (f1deno) (f2deno);

tmp1nume = (f1nume) (f2deno);

tmp2nume = (f2nume) (f1deno);

finalnume = tmp1nume + tmp2nume;

finaldeno = mult;

yue = divisor(final);

finishnume = (finalnume)/yue;

finishdeno = (finaldeno)/yue;

return finish;

}

int divisor(struct fraction f1)

{

int r;

while(f1deno)

{

r = f1nume % f1deno;

f1nume = f1deno;

f1deno = r;

}

return f1nume;

}

#include //标准输入输出库所在的头文件

//自定义函数声明

void add(int m,int m1,int m2,int r,int c); //矩阵加法

void sub(int m,int m1,int m2,int r,int c); //矩阵减法

void mult(int m,int m1,int m2,int r,int p,int c); //矩阵乘法

void disp(int m,int r,int c); //打印数组数据(矩阵里的数据)

//主测试函数

void main()

{

int a[3][4]={{4,3,5,2},{5,1,7,3},{2,7,6,2}};

int b[3][4]={{2,4,4,-7},{4,2,5,-8},{7,-3,-4,2}};

int c[4][3]={{5,4,4},{1,3,1},{4,4,2},{7,1,3}};

int d[3][4]={0};

int e[3][4]={0};

int f[3][3]={0};

printf("\nA(3x4):\n");

disp(a[0],3,4); //显示矩阵a

printf("\nB(3x4):\n");

disp(b[0],3,4); //显示矩阵b

add(d[0],a[0],b[0],3,4); // 计算矩阵 a + b,并将结果存到d中

printf("\nD(3x4)=A+B:\n");

disp(d[0],3,4); //显示a+b的结果(即d中的数据)

sub(e[0],a[0],b[0],3,4);// 计算矩阵 a - b,并将结果存到e中

printf("\nE(3x4)=A-B:\n");

disp(e[0],3,4);//显示a-b的结果(即e中的数据)

printf("\nA(3x4):\n");

disp(a[0],3,4); // 显示矩阵a

printf("\nC(4x3):\n");

disp(c[0],4,3); //显示矩阵c

mult(f[0],a[0],c[0],3,4,3); //计算矩阵ac 并将结果存到f中

printf("\nF(3x3)=AC:\n");

disp(f[0],3,3); //显示ac的结果(即f中的数据)

}

//函数定义

/

函数功能:两个矩阵进行加法运算 C = A+B

参数: m 指向运算结果存放的二维数组(即矩阵) C的首地址

m1为矩形A的首地址,m2为矩形B的首地址

r 为矩阵的行数, c为矩阵的列数

(m+ic+j) = (m1+ic+j) + (m2+ic+j);这个表示将矩阵A的第i行j列的数据 与 矩阵B的第i行j列的数据 相加

然后将结果赋值给矩阵C的第i行j列数据

(m1+ic+j) :m1+ic+j 这个表示指向矩阵A的第i行第j列的数据的指针,则 (m1+ic+j) 就表示矩阵A的第i行第j列的数据

(m2+ic+j) :m2+ic+j 这个表示指向矩阵B的第i行第j列的数据的指针,则 (m2+ic+j) 就表示矩阵B的第i行第j列的数据

(m+ic+j) : m+ic+j 这个表示指向矩阵C的第i行第j列的数据的指针,则 (m+ic+j) 就表示矩阵C的第i行第j列的数据

这里是用指针实现的,

(m+ic+j) = (m1+ic+j) + (m2+ic+j);

等价于

c[i][j] = a[i][j] + b[i][j];

/

void add(int m,int m1,int m2,int r,int c) //

{

int i,j;

for(i=0; i<r; i++)

for(j=0; j<c; j++)

(m+ic+j) = (m1+ic+j) + (m2+ic+j);

}

//注释与上边加法类似

void sub(int m,int m1,int m2,int r,int c) //两个矩阵之间的减法运算

{

int i,j;

for(i=0; i<r; i++)

for(j=0; j<c; j++)

(m+ic+j) = (m1+ic+j) - (m2+ic+j);

}

/注释与上边类似,因为矩阵乘法运算公式较为复杂一些,可自行对照矩阵乘法运算公式

如矩阵c = a b

for(k=0; k<p; k++)

t += (m1+ip+k) (m2+kc+j); //表示将m1的第i行k列的数据 与 m2的第k行j列的数据相乘 ,

//并将p (k的值从0到p) 次结果进行累加

(m+ic+j)=t; //最后将这个累加的结果赋值给矩阵c的第i行第j列的数据

/

void mult(int m,int m1,int m2,int r,int p,int c)//两个矩阵之间的乘法运算

{

int i,j,k,t;

for(i=0; i<r; i++)

for(j=0; j<c; j++)

{

t=0;

for(k=0; k<p; k++)

t += (m1+ip+k) (m2+kc+j);

(m+ic+j)=t;

}

}

//显示打印矩阵中的数据

void disp(int m,int r,int c)

{

int i,j;

for(i=0; i<r; i++)

{

for(j=0; j<c; j++)

printf("%6d",(m+ic+j));

printf("\n");

}

}

从m+1开始判断, 找到第一个素数输出

#include<stdioh>

#include <mathh>

int prime(int n)

{

    int i;

    for(i = 2; i <= sqrt(n); i ++)

    {

        if(n%i==0) return 0;

    }

    return 1;

}

int main()

{

    int m;

    

    scanf("%d",&m);

    

    while(!prime(++m));

    printf("%d\n", m);

}

void func(double a[N][N],double b[N][N])

{

int i,j,c[N][N];

int k;

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

c[i][j]=0;

for(k=0;k<N;k++)

{

c[i][j]+=a[i][k]b[k][j];

}

}

}

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

b[i][j]=c[i][j];

}

}

}

我用的double类型,改为int就行了,你可以试试对不对

以上就是关于用C语言程序求100的阶乘全部的内容,包括:用C语言程序求100的阶乘、C语言函数调用问题、C语言【程序设计】等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9842993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存