C语言计算1!-2!+3!-4!+5!-6!+7!-8!+9!-10!
#include<stdio.h>main(){inti,s,m,t,k;s=0;for(i=1,k=1;i<=10;i++,k++){for(t=1;t<=i;t++)...
#include<stdio.h>main(){int i,s,m,t,k;s=0;for(i=1,k=1;i<=10;i++,k++){for(t=1;t<=i;t++)m*=t;s+=pow(-1,k)*m;}printf("%d",s);}
为什么结果不对啊?
结果是-3301819 展开
为什么结果不对啊?
结果是-3301819 展开
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int i,m,t,k;
double s;
s=0;
m=1;
for(i=1,k=1;i<=10;i++,k++)
{
for(t=1;t<=i;t++)
m*=t;
s+=pow(-1,k)*m;
m=1;
}
printf("%.0lf",s);
}
你的m用来乘了,但是m没有赋初值,所以算不出,还有用了pow就变成double型了,所以得用double型的变量来存答案,这是语法问题,至于你自己的算法问题,得自己找错误,找多了才行,找多了才会变厉害,自己带几个值在纸上算着跑一遍,看看对不对,
#include<math.h>
int main()
{
int i,m,t,k;
double s;
s=0;
m=1;
for(i=1,k=1;i<=10;i++,k++)
{
for(t=1;t<=i;t++)
m*=t;
s+=pow(-1,k)*m;
m=1;
}
printf("%.0lf",s);
}
你的m用来乘了,但是m没有赋初值,所以算不出,还有用了pow就变成double型了,所以得用double型的变量来存答案,这是语法问题,至于你自己的算法问题,得自己找错误,找多了才行,找多了才会变厉害,自己带几个值在纸上算着跑一遍,看看对不对,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int sum = 0,temp = 1,i = 0;
for ( i = 1 ; i <= 10 ; ++i )
{
sum += temp;
temp *= ( -(i+1));
}
printf("%d",sum);
}
这样清爽很多。。具体到你的程序,s+=pow(-1,k)*m; 这句不应该在内层循环里,内层求阶乘,外层累加,内层循环开始前m要重置,还有幂次不对,pow(-1,k-1),还有实际上i和k是重复的变量。
int main()
{
int sum = 0,temp = 1,i = 0;
for ( i = 1 ; i <= 10 ; ++i )
{
sum += temp;
temp *= ( -(i+1));
}
printf("%d",sum);
}
这样清爽很多。。具体到你的程序,s+=pow(-1,k)*m; 这句不应该在内层循环里,内层求阶乘,外层累加,内层循环开始前m要重置,还有幂次不对,pow(-1,k-1),还有实际上i和k是重复的变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-17
展开全部
s+=pow(-1,k)*m;
改成
s+=pow(-1,k-1)*m;
并且
for(t=1;t<=i;t++)
这句前面应该要加上
m=1;
这句
不然都是错的
逻辑错了
改成
s+=pow(-1,k-1)*m;
并且
for(t=1;t<=i;t++)
这句前面应该要加上
m=1;
这句
不然都是错的
逻辑错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
power 函数时是求幂指数的。题目要求时就是阶层
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算的是0吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询