我很难找到一种方法,使用C ++解决用户使用cin输入值然后让计算机解决获取cin值的方法,给定格式。一个超级快速的例子写在下面..是的,我知道有很多代码缺失......但概念就在那里..
int x;
int y;
int w;
int x = 30 < w < 50;
int y = 60 < w < 90;
cin >> input;
x + y = input;
cout << x;
cout << y;
当然,虽然x + y不能在右边的左值上。所以我不能写x + y =输入..所以我怎么解决x + y =输入?另外我希望x和y介于列出的数字之间,这限制了这些输入之间的数字。但是在我的实际编码中,我用一个函数做了这个。
学校甚至开学了吗?不,它不是功课。我自己教C ++ .. - 肖恩霍尔特1分钟前编辑如果x和y在函数中的指定值之间
,我只想尝试让计算机求解输入值的x / y的方法答案 0 :(得分:2)
看起来你认为C ++会为你解决方程式。它不会。 C ++是一种命令式的风格语言,它基于你的概念,告诉它完全该做什么。
您必须弄清楚如何解决x和y,以便您可以制作算法。这个算法就是你制作程序的方法。
存在其他语言,您可以在某种意义上描述您想要的内容,并让编译器或运行时知道如何为您获取它。 C ++不是其中之一。
解决您的特定问题的不同方法是建立一个方程式系统并解决它。或者做暴力逼近并迭代x和y的值,以找出哪些值匹配。
答案 1 :(得分:1)
这看起来你有一个'数学'问题:一些受方程约束的值,你希望'计算机'找到适合约束(方程式)的所有可能值。我是对的吗?
虽然有些计算机程序当然可以做到这一点,但C ++语言并不是为此而设计的。 C ++的作用是为您提供一种向处理器发出指令的方法,例如“将此值存储在内存中”或“添加这两个数字”。但是没有办法说“解决这个数学问题”。
你需要的是一些方程求解器。但我对任何人都不熟悉。有像Matlab或Mathematica这样的工具。但我不认为他们是免费的。
答案 2 :(得分:0)
如果你想通过算法解决数学问题,这里有一个伪代码的强力思想:
Input a number.
for each value x between 30 and 50
for each value y between 60 and 90
if x+y equals the number
print x and y
现在你可以用C ++写一本好书或教程和代码。在教材中查找for
和if
关键字(迭代和选择的算法概念)。玩得开心!
答案 3 :(得分:0)
这种情况可以通过区间运算来解决。下面给出了解决“两个区间约束变量之和”问题的C ++代码。
int min_x = 30, max_x = 50;
int min_y = 60, max_y = 90;
// solutions exist in this interval
int min_z = min_x + min_y, max_z = max_x + max_y;
cin >> input;
// solutions possible?
if (input >= min_z && input <= max_z)
{
// determine solution interval for x (y is dependent)
cout
<< "Solution:\n"
<< "x in [" << min(max( input - max_y , min_x),max_x)
<< ";" << min(max( input - min_y , min_x),max_x) << "], "
<< "y = " << input << " - x" << endl;
}
else
{
cout << "No solution." << endl;
}
计算机“基本上是愚蠢的”,如果他们做聪明的事情就是软件。 使用像C ++这样的通用编程语言需要你(或至少 您最终使用的库)非常具体如何解决 基于裸机的简单算术手段的问题。
虽然编程语言不会神奇,而且以某种方式做事 对你而言,存在解决许多数学标准问题的算法 例如,方程组。 Numerical Recipes in C++涵盖了各种各样的内容 算法及其C ++实现。