我用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;
}
展开
 我来答
lc218
2012-03-13 · 超过30用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:71.8万
展开全部
没看明白你到底想计算什么,
#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....
出色且纯良丶小雀29
2012-03-13 · TA获得超过1167个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:323万
展开全部
你的 s 没有初始化,所以在运算时系统随机赋了一个值,所以运算结果也出错。
追问
我听你的  把s=0;写上去  但结果 好像永远都是1  这是为什么啊 ··求不出对应的结果
追答
你看到第一次循环进去后是不是item变成1了,你输入的epx应该是小于1的吧,不然会出现死循环,那么循环运行一次后不满足条件退出了,这样结果就是s的值为1 了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1152301745
2012-03-19
知道答主
回答量:43
采纳率:0%
帮助的人:10.2万
展开全部
你写的一时间都看不懂,麻烦以后后面加注释
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式