求何些代码运行不了呢??
//加料版:实现让用户输入0< x <10以内的数,求1 ~ x^y的阶乘和^^#include "stdio.h"
double power(double a, double b); //求a^b
long fatorial(int q); //阶乘函数
void main()
{
int x, y, s, i; //x,y待输入,S是阶乘结果,I是循环次数
printf("input x(<=10) & y(<=5) : \n");
scanf("%d,%d", &x, &y);
while( scanf("%d",&x) != 1 ) //排除数值以外的输入
{
printf("illegal input!!\npls input again!!\n");
getchar();
}
for(i=1; i<=x; i++) //进入求S的循环
{
s = s + power(i,y); //调用POWER函数
}
printf("%ld\n", s);
}
double power(double a, double b) //定义幂运算函数
{
double z, r;
int c;
z = a;
for(c=1; c<b; c++)
{
z *= a;
r = factorial(z); //调用阶乘函数
}
return r;
}
long factorial(int q) //定义阶乘函数
{
long v = 1;
int j;
for( j=1; j<=q; j++)
{
v *= j;
}
return v;
}
欣欣celin 发表于 2014-3-19 23:04 static/image/common/back.gif
感谢回复
貌似结果有出入哦,
当输入,2^3,结果正确=40321
给你改了一下,你算不对 是因为超范围了
double power(double a, double b); //求a^b
double factorial(double q);//阶乘函数
int main()
{
int x, y,i; //x,y待输入,S是阶乘结果,I是循环次数
double s=0;
printf("input x(<=10) & y(<=5) : \n");
scanf("%d,%d", &x, &y);
s = power(x,y); //调用POWER函数
s=factorial(s);
printf("%lf\n", s);
system("pause");
return 0;
}
double power(double a, double b) //定义幂运算函数
{
double z, r;
double c;
z = a;
for(c=1; c<b; c++)
{
z *= a;
}
return z;
}
double factorial(double q) //定义阶乘函数
{
double v = 1;
int j;
for( j=1; j<=q; j++)
{
v *= j;
}
return v;
} 补充,这是0基础C语言第36讲那个例题的延伸版,编译无报错,但运行时老出不来结果,调试也没找到原因,求各位大神赐教{:7_166:} #include "stdio.h"
long factorial(int q) //定义阶乘函数
{
long v = 1;
int j;
for( j=1; j<=q; j++)
{
v *= j;
}
return v;
}
double power(double a, double b) //定义幂运算函数
{
double z, r;
int c;
z = a;
for(c=1; c<b; c++)
{
z *= a;
r = factorial(z); //调用阶乘函数
}
return r;
}
void main()
{
int x, y, s = 0, i; //x,y待输入,S是阶乘结果,I是循环次数
AG:
printf("input x(<=10) & y(<=5) : \n");
scanf("%d,%d", &x, &y);
if (x == 1)
{
printf("illegal input!!\npls input again!!\n");
goto AG;
}
for(i=1; i<=x; i++) //进入求S的循环
{
s = s + power(i,y); //调用POWER函数
}
printf("%ld\n", s);
}
是要这样的结果吗?你的阶乘和power函数功能我没改,只是修改了main里面的逻辑! 超级忍者龟 发表于 2014-3-19 09:11 static/image/common/back.gif
#include "stdio.h"
long factorial(int q) //定义阶乘函数
{
感谢回复{:7_174:}
貌似结果有出入哦,
当输入,2^3,结果正确=40321
但输入2^4,却输出错的结果2004189185 ?
正确应=20922789888001{:7_166:}
另外,为何要修改了main里面的逻辑才能运行呢?不明白,
大神能详解一下吗?
{:7_154:}期待-ing 欣欣celin 发表于 2014-3-19 23:04 static/image/common/back.gif
感谢回复
貌似结果有出入哦,
当输入,2^3,结果正确=40321
那你要检查你的2个函数算法是不是正确! machimilk 发表于 2014-3-18 23:13 static/image/common/back.gif
给你改了一下,你算不对 是因为超范围了
double power(double a, double b); //求a^b
BINGO{:7_169:}
原来如此,又学到了,谢谢,谢谢{:7_174:} 超级忍者龟 发表于 2014-3-20 09:07 static/image/common/back.gif
那你要检查你的2个函数算法是不是正确!
谢谢,问题搞掂了{:7_168:}
页:
[1]