C语言问题,我编的程序可以编译运行,但是只能输入数字,然后就不运行了,是怎么回事?高手解答 5

#include<stdio.h>#include<math.h>intmain(void){doublefact(intnumber);doublefuncos(dou... #include<stdio.h>
#include<math.h>
int main(void)
{
double fact(int number);
double funcos(double e,double x);
double e,x,y;
printf("e: ");
scanf("%lf",&e);
printf("x: ");
scanf("%lf",&x);
y=funcos(e,x);
printf("cos(x)=%lf",y);
return 0;
}
double funcos(double e,double x)
{
int item,a,b,denominator,flag=1,sum=0,f,g;
while(fabs(item)>=e){
f=fact(denominator);
item=flag*pow(a,b)/f;
flag=-flag;
b=b+2;
g=fact(denominator+2);
f=g;

sum=sum+item;}
return sum;}

double fact(int d)
{
int i;
double result;
result=1;
for(i=1;i<=d;i++)
{
result=result*i;
}
return result;
}
问题已解决!(没看你们的额,自己做完的)不好意思哈
展开
 我来答
蚂蚁海魂衫
2012-05-05 · TA获得超过154个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:165万
展开全部
while(fabs(item)>=e)
确定能跳出循环吗?
funcos()函数声明返回的是double类型,但return sum,sum声明的是int类型
sum应该声明为double,或者
sum应该强制转换return (double)sum;
推荐你使用单步调试,这种问题还需要靠自己,没人会为你写的代码负责的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-05
展开全部
int item,a,b,denominator,flag=1,sum=0,f,g;
//你这好多变量都没初始化!而且我也不知道应该如何初始化。

a=countdigit(m,n);
//调用之时没初始化m,n;

不给我分啊? = = 你真棒。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwm_2012
2012-05-05 · TA获得超过966个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:409万
展开全部
问题太多了,
1.参数x一直未被使用
2.类型不对头:item sum f g应当是double 型的
3.变量初次使用前未被初始化:denominator a b
4 denominator 一直参数循环计数却没有迭代,一直是初值??

程序不是不运行了而是在里面死循环的的跑着!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式