| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2324 人关注过本帖
标题:怎么让程序提示,你输入的值不在范围内.
取消只看楼主 加入收藏
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
 问题点数:0 回复次数:6 
怎么让程序提示,你输入的值不在范围内.

//用弦截法求方程f(x)=x^3-5x^2+16x-80=0的根.

#include <stdio.h>
#include <math.h>

float f (float x) //定义f函数,以实现f(x)=x^3-5x^2+16x-80
{
float y;
y = ((x - 5.0)*x + 16.0)*x - 80.0;
return (y);
}

float xpoint (float x1, float x2) //定义xpoint函数,求出弦与X轴交点.
{
float y;
y = (x1 * f(x2) - x2 * f(x1)) / (f(x2) - f(x1));
return (y);
}

float root (float x1, float x2) //定义root函数, 求近似根.
{
float x, y, y1;
y1 = f(x1);
do
{
x = xpoint (x1, x2);
y = f(x);
if (y * y1 > 0) //f(x)与f(x1)同符号.
{
y1 = y;
x1 = x;
}
else
x2 = x;
}
while (fabs (y) >= 1e-6);
return (x);
}

int main(void) //主函数.
{
float x1, x2, f1, f2, x;
printf ("input x1, x2: \n");
scanf ("%f, %f",&x1, &x2);
do
{
f1 = f(x1);
f2 = f(x2);
}
while (f1 * f2 >= 0);
x = root (x1, x2);
printf ("A root of equation is %8.4f", x);
getch ();
return 0;
}

它的根是5, 如果你输入的x1到 x2不包括5在内, 则得不到正确的结果. 如果你先不知道它的根是多少,怎么让别人知道需要输入多大的范围. 程式是否可以提示.

[此贴子已经被作者于2006-5-8 18:59:17编辑过]

搜索更多相关主题的帖子: float 提示 范围 定义 
2006-05-08 17:03
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
晕了, 我什么也没改. 怎么发完这个帖子后现试. 竟然又输出正确的值了....
2006-05-08 17:13
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 

谢谢楼上的.....

2006-05-08 17:28
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
楼上的.
这样只是提示你输入的不正确. 没有提示更准备的输入. 让别人第二次就输入正确.
假如你输入1,2和6,10都是错误的. 可能输入N次还得不到正确结果. 没有提示你输入应该X1小于5和X2大于5,or 应该X2小于5和X1大于5.
2006-05-08 19:17
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
看起来好像是一个对立面. 没有输入正确的数,程式就不会运行得到结果. 没有得到结果怎么比较输入的值是否正确....

晕了.......
2006-05-08 19:22
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
以下是引用–★–在2006-5-8 19:30:00的发言:

我帮你改后的东东,其实就是老谭书的第156-157页的程序。
你居然还要说三道四,我刚才恼火的就在于此。
实际上,弦截法的第一困难就是确定“单根区间”!
LZ的原始代码把人机对话移出循环,也无济于事,是不是?

呵呵, 不好意思.

你恐怕误解了我的意思. 我想说的是当你输入的值不对时. 怎么让程式提示输入“单根区间”的值!
老谭给出的代码只是如果值不对, 就会让你无穷无尽的输入...

2006-05-08 19:53
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
楼上的如果写一个database来统计一些方程的"单根区间". 然后调用与所求的方程进行对比. 再给出提示.

这样是否可行?
2006-05-08 20:04
快速回复:怎么让程序提示,你输入的值不在范围内.
数据加载中...
 
   



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

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