| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 535 人关注过本帖
标题:[求助]新手求助。
只看楼主 加入收藏
ar7043
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-15
收藏
 问题点数:0 回复次数:9 
[求助]新手求助。

main()
{
int x,i;
int a=10,b=-10;
x=(a+b)/2;
for(i=0;;i++)
{
if(x*x*x-4*x*x+3*x-6<0)
a=x;
x=(a+b)/2;
else if(x*x*x-4*x*x+3*x-6>0)
b=x;
x=(a+b)/2;
else break;
}
printf("%d",x);
}

为什么老是报错misplaced else in function main.
谢谢啊,我是新手刚开始学c。

搜索更多相关主题的帖子: function 
2006-08-16 15:58
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 

-_-

[此贴子已经被作者于2006-8-16 16:17:00编辑过]


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-16 16:14
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

if(x*x*x-4*x*x+3*x-6<0)
{ a=x;
x=(a+b)/2;}
else
if(x*x*x-4*x*x+3*x-6>0)
{b=x;
x=(a+b)/2;}
else break; /* 你是不是想这样啊?*/

2006-08-16 16:21
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

你的程序是不是这样:
main()
{
int x,i;
int a=10,b=-10;
x=(a+b)/2;
for(i=0;;i++)
{
if(x*x*x-4*x*x+3*x-6<0)
{
a=x;
x=(a+b)/2;
}
else
if(x*x*x-4*x*x+3*x-6>0)
{
b=x;
x=(a+b)/2;
}
else
break;
}
printf("%d",x);
getch();
}

但是我没看出来你的程序的目的
不知道LZ想要干吗?

2006-08-16 16:47
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
test

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-16 19:30
皮皮鲁
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-27
收藏
得分:0 




难以看出你的程序的目的啊

2006-08-16 20:44
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

程序是计算x^3-4x^2+3x-6=0在[-10,10]的根.
除了4楼指出的问题,程序在计算的时候把x,a,b处理为整型是不合理的。可改为double型,因为方程不一定有整数解.另外,循环应置一个条件。当求到一个一定的精确度的时候,就可以停止循环了。


对不礼貌的女生收钱......
2006-08-16 21:23
ar7043
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-15
收藏
得分:0 

题目是求这个方程的解。不只对不对。谢谢大家阿!虽然初学。。努力中!


2006-08-16 21:26
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

#include "stdio.h"
#include "conio.h"
#include "math.h"
main()
{
int i;
double x,a=10,b=-10;
x=(a+b)/2;
for(i=0;;i++)
{
if(fabs(x*x*x-4*x*x+3*x-6)<1e-3)
break;
else if(x*x*x-4*x*x+3*x-6<0)
{
b=x;
x=(a+b)/2;
}
else if(x*x*x-4*x*x+3*x-6>0)
{
a=x;
x=(a+b)/2;
}

}
printf("%f",x);
getch();
}

请楼主注意,除类型和括弧问题,二分法的处理您也弄错了!上面是改好的程序,您可以再看看。


对不礼貌的女生收钱......
2006-08-16 21:34
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用ar7043在2006-8-16 15:58:32的发言:

main()
{
int x,i;
int a=10,b=-10;
x=(a+b)/2;
for(i=0;;i++)
{
if(x*x*x-4*x*x+3*x-6<0)
{a=x;/*包含多个语句要用复合符*/
x=(a+b)/2;}
else if(x*x*x-4*x*x+3*x-6>0)
{b=x;
x=(a+b)/2;}
else break;
}
printf("%d",x);
}

为什么老是报错misplaced else in function main.
谢谢啊,我是新手刚开始学c。

2006-08-16 22:10
快速回复:[求助]新手求助。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015288 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved