重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#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);
}
}
#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行列式的值。
有不明白的地方可以追问,望采纳:)
#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;
}
如下:
#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);
}
#include stdio.h
int main()
{
int a;
scanf("%d",a);
if(a0)
a=-a;
printf("%d\n",a);
return 0;
}
子函数里,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();
}运行无误