
我用C语言写一个程序 但是求不出相应的结果 程序可以运行 但结果不对,请各位高手帮帮忙啊
#include<stdio.h>#include<math.h>intmain(void){intflag;doubleepx,s,item,denomination;...
#include<stdio.h>
#include<math.h>
int main(void)
{int flag;
double epx,s,item,denomination;
printf("Enter a epx:\n");
scanf("%lf",&epx);
item=0;flag=1;denomination=1;
while(fabs(item)<epx){
item=flag*1.0/denomination;
s=s+item;
flag=-flag;
denomination=denomination+3;
}
printf("s=%.2f\n",s);
return 0;
} 展开
#include<math.h>
int main(void)
{int flag;
double epx,s,item,denomination;
printf("Enter a epx:\n");
scanf("%lf",&epx);
item=0;flag=1;denomination=1;
while(fabs(item)<epx){
item=flag*1.0/denomination;
s=s+item;
flag=-flag;
denomination=denomination+3;
}
printf("s=%.2f\n",s);
return 0;
} 展开
3个回答
展开全部
没看明白你到底想计算什么,
#include<stdio.h>
#include<math.h>
int main(void)
{int flag;
double epx,s,item,denomination;
printf("Enter a epx:\n");
scanf("%lf",&epx);
item=0;flag=1;denomination=1; //这里都赋初始值了
while(fabs(item)<epx){
item=flag*1.0/denomination; // item=1*1.0/1==1,这是item最大的值了,循环后他变成0,因 为flag=0
s=s+item; // s=0+1==1
flag=-flag; //flag=0
denomination=denomination+3;
}
printf("s=%.2f\n",s);
return 0;
}
很奇怪你这程序能得到结果,应该是死循环才对。。。
#include<stdio.h>
#include<math.h>
int main(void)
{int flag;
double epx,s,item,denomination;
printf("Enter a epx:\n");
scanf("%lf",&epx);
item=0;flag=1;denomination=1; //这里都赋初始值了
while(fabs(item)<epx){
item=flag*1.0/denomination; // item=1*1.0/1==1,这是item最大的值了,循环后他变成0,因 为flag=0
s=s+item; // s=0+1==1
flag=-flag; //flag=0
denomination=denomination+3;
}
printf("s=%.2f\n",s);
return 0;
}
很奇怪你这程序能得到结果,应该是死循环才对。。。
更多追问追答
追问
您好啊 ,这样怎么会是死循环呢,denomination=1 但是循环条件是item啊 item=flag*1.0/denomination;item这时候是最小的 啊 ;程序的循环条件是item小于一个实数epx啊;
所以说这并不是一个死循环。
追答
denomination=denomination+3,这个数每次自加3,item=flag*1.0/denomination;意思就是denomination越来越大,flag只变正负(刚开始把=-看反了,晕),item=1-1/4+1/7-1/10+1/13....
展开全部
你的 s 没有初始化,所以在运算时系统随机赋了一个值,所以运算结果也出错。
追问
我听你的 把s=0;写上去 但结果 好像永远都是1 这是为什么啊 ··求不出对应的结果
追答
你看到第一次循环进去后是不是item变成1了,你输入的epx应该是小于1的吧,不然会出现死循环,那么循环运行一次后不满足条件退出了,这样结果就是s的值为1 了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的一时间都看不懂,麻烦以后后面加注释
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询