求大神解决这error,执行出现debug error,想知道哪里出错了
#include<stdio.h>void main()
{
int n, i;
double x, s;
double fact(double x,int n );
double fx(n);
printf("请输入实数x和正整数数n:");
scanf_s("%lf%d", &x, &n);
for (i = 1; i <= n; i++){
if (x >= 0)s = s + fact(i, x) / fx(i);
else s = s + fx(i) / fact(i, x);
}
printf("s=%.2lf", s);
}
double fact(x, n)
{
int i;
double pow = 1;
for (i = 1; i <= n; i++){
pow = pow*x;
}
return pow;
}
double fx(n){
int i;
double sum = 0;
for (i = 1; i <= n; i++)
sum = sum*i;
return sum;
}
大兄弟 {:5_95:}{:5_95:}这个函数申明在外面里面可以不可以我知道double fact(double x,int n );
double fx(n);反正在外面可以,,,scanf_s这个函数有没有我不知还是用原始的scanf吧
一起加油哦 !!!!!!!!!!!1111{:5_98:} 还有你的函数定义时的参数要加上类型,,你应该想直接用前面的变量这样好像不行 李星 发表于 2016-10-21 12:04
大兄弟 这个函数申明在外面里面可以不可以我知道double fact(double x,int n );
...
额,我就是在外面声明的函数~,我用scanf时说错误,要我改成scanf_s。函数定义的参数类型我也加上去了,执行时还是Debug error。没手把手教学,感觉很麻烦,编写的程序都不知道错在哪里。 函数的声明可以写在开头也可以写在主函数里都没有问题,scanf改正.
double fx(n) 和double fact(x,n) 你没有给定义数据类型
改 double fx(int n) double fact(double x,int n)
if (x >= 0)s = s + fact(i, x) / fx(i);
else s = s + fx(i) / fact(i, x);你没有考虑除数为零
你能说一下你的具体错误吗??
#include<stdio.h>
double fact(int ,double);
double fx(int);
void main()
{
int n, i;
double x, s=0;
// double fact(double x,int n );
// double fx(n);
printf("请输入实数x和正整数数n:");
scanf("%lf%d", &x, &n);
for (i = 1; i <= n; i++){
if (x >= 0)s = s + fact(i, x) / fx(i);
else s = s + fx(i) / fact(i, x);
}
printf("s=%.2lf", s);
}
double fact(intx, double n)
{
int i;
double pow = 1;
for (i = 1; i <= n; i++){
pow = pow*x;
}
return pow;
}
double fx( int n){
int i;
double sum = 0;
for (i = 1; i <= n; i++)
sum = sum*i;
return sum;
}
李星 发表于 2016-10-23 22:49
你能说一下你的具体错误吗??
解决方案没显示有错误,但是执行时出现那个Debug error窗口
页:
[1]