函数计算题c语言解 c语言计算函数的值例题

求解C语言利用函数计算Cmn=(m!-n!)/(n!)

#includestdio.h

创新互联公司主要从事成都网站制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务武侯,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

int prime[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

int len = 10;

int factors1[10];

int factors2[10];

void decompose(int* factors, int m, int n)

{

for (int i = 0; i  len; i++) factors[i] = 0;

for (int j = m; j = n; j++)

{

int temp = j;

for (int t = 0; t  len; t++)

{

while (temp != 1  temp % prime[t] == 0)

{

temp /= prime[t];

factors[t]++;

}

if (temp == 1) break;

}

}

}

void main()

{

int m, n;

int res;

while (~scanf("%d %d", m, n))

{

if (n  m)

{

int temp = n;

n = m;

m = temp;

}

int max, min;

if (n  m - n)

{

max = n;

min = m - n;

}

else

{

max = m - n;

min = n;

}

decompose(factors1, max + 1, m);

decompose(factors2, 2, min);

res = 1;

for (int i = 0; i  len; i++)

{

factors1[i] -= factors2[i];

for (int j = 0; j  factors1[i]; j++)

res *= prime[i];

}

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

}

}

基本思路是因式分解,避免大数溢出

也可以把main函数改为这个,方便理解

因为 C(m,n)=m!/((m-n)!*n!),可以先将分母部分的n!约掉。

void main()

{

int m, n;

int res;

while (~scanf("%d %d", m, n))

{

if (n  m)

{

int temp = n;

n = m;

m = temp;

}

decompose(factors1, n + 1, m);

decompose(factors2, 2, m - n);

res = 1;

for (int i = 0; i  len; i++)

{

factors1[i] -= factors2[i];

for (int j = 0; j  factors1[i]; j++)

res *= prime[i];

}

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

}

}

C语言编程题调用函数求解方程组,a1x+b1y=c1,a2x+b2y=c2

#includestdio.h

double

val(double

a00,double

a11,double

a01,double

a10)

{

return

a00*a11-a01*a10;

}

void

main()

{

double

a1,b1,c1,a2,b2,c2;

double

m1,m2,m3;

printf("Please

input

a1,b1,c1\n");

scanf("%lf%lf%lf",a1,b1,c1);

printf("Please

input

a2,b2,c2\n");

scanf("%lf%lf%lf",a2,b2,c2);

m1

=

val(a1,b2,a2,b1);

m2

=

val(c1,b2,c2,b1);

m3

=

val(c1,a2,c2,a1);

if(m1==0){

if(m2==0

m3==0)

printf("无数解\n");

else

printf("无解\n");

}else

printf("x=%lf,y=%lf\n",m2/m1,-m3/m1);

}

这个是先求行列式的值,然后判断其是否为0,讨论解的情况,当有唯一解的时候,输出x和y的值。

val()函数用于计算2x2行列式的值。

有不明白的地方可以追问,望采纳:)

用C语言计算简单的数学题

#include stdio.h

#include math.h

int main(void)

{

double sg,sp,gd,ds,pai=3.14;

printf("  利用三角函数计算物体的高度。\n\n");

printf("  请输入观测点的水平距离(m):");

scanf("%lf",sp);

printf("  请输入观测点的垂直高度(m):");

scanf("%lf",gd);

printf("     请输入观测点的仰角(度):");

scanf("%lf",ds);

sg=sp*tan(ds*pai/180)+gd;

printf("             该物体的高度为:%.2f m\n",sg);

return 0;

}

C语言计算题

如下:

#include stdio.h

double fun(int n)

{

int i,j;

double s=1,k=1.0;

for(i=1;i=n;i++)

{

j=i;

while(j=1)

{

k*=j;

j--;

}

s+=1/k;

}

return s;

}

void main()

{

int n; 

double s;

FILE *out;

printf("\nInput n: "); 

scanf("%d",n);

s=fun(n);

printf("s=%f\n",s);

}

C语言题求解。计算绝对值函数。 (if语句)?

#include stdio.h

int main()

{

int a;

scanf("%d",a);

if(a0)

  a=-a;

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

return 0;

}

求解,C语言函数编程题。编写函数完成如下功能:将整型数中数字为偶数的数依次取出,构成一个新数返回。

子函数里,return s 你给谁?

return是指你上面计算的结果返回。所以你应该return i;

另外你数组输入了2次,这是不对的。而且你for语句后面的if与return应该在循环体里,不然就只return了一次的。

int x(int a)

int i;

int s[];

for(i=0;ij;i++)

{

if(s[i]%2==0)

return i;

}

下面给你一个我写的吧

#include stdio.h

main()

{

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

int i=0;

for(;i10;i++)

{

if (a[i]%2==0)

{

printf("第%d个元素是偶数,它是:%d\n",i+1,a[i]);

}

}

getchar();

}运行无误


名称栏目:函数计算题c语言解 c语言计算函数的值例题
网页地址:http://scyanting.com/article/dooppoo.html