呼唤大佬,帮忙看看哪错了,结果和题目不符
c4droid吧
全部回复
仅看楼主
level 4
呼唤大佬,帮忙看看哪错了,结果和题目不符
2017年12月14日 05点12分 1
level 11
sum给初始值0
2017年12月14日 05点12分 2
level 4
#include<stdio.h>
double fact(double n);
double cfh(double x,double n);
main()
{
double sum,t;
int x,n,i;
sum=1;
printf("please input x,n:");
scanf("%d,%d",&x,&n);
for(i=1;i<=x;i++)
{t=cfh(x,n)/fact(n);
sum+=t;
printf("%lf",sum);}
}
double fact(double n)
{int z,i;
z=1;
for(i=1;i<=n;i++)
{z*=i;}
return(z);
}
double cfh(double x,double n)
{int y,i;
y=1;
for(i=1;i<=n;i++)
{y*=x;
return(y);}
}
自己发现了一些问题,又改了一下,但还是不对
2017年12月14日 05点12分 3
level 11
很多错误,y初始值也没有
2017年12月14日 05点12分 4
我又改了一下,你看下
2017年12月14日 06点12分
level 11
cfh 的return (y);
写在for外面。
2017年12月14日 10点12分 5
level 11
c4有对齐代码的,缩进后比较易懂
2017年12月14日 10点12分 6
嗯呐,谢谢啦
2017年12月15日 14点12分
level 6
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int i;
int myfact(int factN,int x){
int refactN = 1;
for (i = 1;i<=factN;i++){
refactN += i + 1;
}
return refactN;
}
long mypwer(int pwerN,int x){
long repwerN = x;
for (i = 0;i<pwerN;i++){
repwerN *= x;
}
return repwerN;
}
double mysumN(int N,int x){
double resumN = x,refact,repwer;
int count, j=1,k=1,Max;
Max = N>x?N:x;
for (count = 1;count< Max;count++){
if (!(count>=x)){refact = myfact(count,x); j++;}
if(!(count>=N)){repwer = mypwer(count,x);k++;}
resumN += repwer/refact;
printf("1+%d+%d^%d/%d!=%lf\n",x,x,k,j,resumN+1);
printf("阶乘得数:%lf\n",refact);
printf("幂运算得数:%lf\n",repwer);
getch();
}
return resumN++;
}
int main(){
int N,x;
double remysum;
clrscr();
printf("公式:1+x+x^2/2!……+x^n/x!\n");
printf("输入n次幂:");
scanf("%d",&N);
printf("输入基数x:");
scanf("%d",&x);
printf("你的输入为:1+%d+%d^%d/%d!\n",x,x,N,x);
getch();
remysum = mysumN(N,x)+1;
printf("%lf",remysum);
return 0;
}
2017年12月15日 09点12分 7
虽然不太对,但还是谢谢啦
2017年12月15日 14点12分
level 6
哪里问题?
2017年12月15日 14点12分 8
你多输入几组数据看下,就不对了
2017年12月15日 14点12分
level 6
我知道了,是溢出了,把幂运算的long 改成double
2017年12月15日 15点12分 9
level 6
改了后看看还有错没
2017年12月15日 15点12分 10
level 6
用long double就可以容纳更大的
2017年12月15日 15点12分 11
level 6
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int i;
int myfact(int factN,int x){
int refactN = 1;
for (i = 1;i<=factN;i++){
refactN += i + 1;
}
return refactN;
}
long double mypwer(int pwerN,int x){
long double repwerN = x;
for (i = 0;i<pwerN;i++){
repwerN *= x;
}
return repwerN;
}
double mysumN(int N,int x){
double resumN = x,refact,repwer;
int count, j=1,k=1,Max;
Max = N>x?N:x;
for (count = 1;count< Max;count++){
if (!(count>=x)){refact = myfact(count,x); j++;}
if(!(count>=N)){repwer = mypwer(count,x);k++;}
resumN += repwer/refact;
printf("1+%d+%d^%d/%d!=%lf\n",x,x,k,j,resumN+1);
printf("阶乘得数:%lf\n",refact);
printf("幂运算得数:%lf\n",repwer);
getch();
}
return resumN++;
}
int main(){
int N,x;
double remysum;
clrscr();
printf("公式:1+x+x^2/2!……+x^n/x!\n");
printf("输入n次幂:");
scanf("%d",&N);
printf("输入基数x:");
scanf("%d",&x);
printf("你的输入为:1+%d+%d^%d/%d!\n",x,x,N,x);
getch();
remysum = mysumN(N,x)+1;
printf("%lf",remysum);
return 0;
}
2017年12月15日 15点12分 12
其实我感觉好像只执行了后面那几行输出的代码,前面的函数似乎没用到,改了之后也还是不行,并没有实现阶乘和幂[委屈][委屈][暗中观察][暗中观察]
2017年12月15日 16点12分
我在输出把运算结果打印出来了啊,你可以核对下嘛
2017年12月15日 16点12分
level 6
mysumN(N,x)就是调用了累加
2017年12月15日 16点12分 13
level 6
在mysumN里面还有两个myfact跟mypwer就是幂跟阶乘调用
2017年12月15日 16点12分 14
level 6
我本来在dev c里面搞的,分了几个文件,合到一起有点乱
2017年12月15日 16点12分 15
1 2 尾页