标题:请教C++中实现对三元一次方程的求解??
只看楼主
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
结帖率:100%
已结贴  问题点数:10 回复次数:6 
请教C++中实现对三元一次方程的求解??
有这么一个方程组
x+y+z=50
x+2y+5z=100
其中x>0,y>0,z>0且x、y、z都为整数。
要求输出所有可能的解。
我是新手,编程的时候直接用for循环和if语句编写的,后来出现了bad suffix on number的错误。一查才知道变量前面不能有数字。
那么,我怎么才能把这个系数和未知数编进去呢??

搜索更多相关主题的帖子: 三元 number 方程组 未知数 
2012-11-13 09:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
x+2y+5z=100 减去 x+y+z=50 得到 y=50-4z;
将 y=50-4z 代入 x+2y+5z=100 得到 x=3z;

对于
x = 3z;
y = 50 - 4z;
这很简单呀
程序代码:
#include <stdio.h>

int main()
{
    for( int z=1; z<=12; ++z )
        printf( "x=%d y=%d z=%d\n", 3*z, 50-4*z, z );

    return 0;
}
不知道对不对,公式随手写的,我没验证过
2012-11-13 10:48
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
得分:0 
x=%d是什么意思啊?本人是新手,现在正自学中~~
还有就是不能用cout输出吗?
然后就是变量前不能有数字是对于什么变量而言的啊?

2012-11-13 11:26
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
得分:0 
我刚刚调试过了,是对的。
2012-11-13 11:26
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
得分:4 
#include <iostream>

using namespace std;

int main()
{
    int z;
    for(z = 1; z < 100; z++){
        if ( (50 -4*z) < 0 ) break;
        cout << "x=" << 3*z << " y=" << 50 - 4*z << " z=" << z << endl;
    }
    return 0;
}

因为y>0 所以 50 - 4z也必须>0,推算出z = (50 / 4) <= 12,硬要用if的话就如上所述,x 和 z 总为正整数。

二楼推论是正确的。

[ 本帖最后由 newdos 于 2012-11-13 11:45 编辑 ]
2012-11-13 11:42
额外覆盖
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:城市猎人
威 望:6
帖 子:1726
专家分:5757
注 册:2012-9-22
得分:1 
2楼用的是c语言,而cout和cin是c++里的输入输出流,需要头文件iostream

我现在所学的一切都是为了游戏!!!为了游戏,加油!加油!努力!
2012-11-13 11:45
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
得分:0 
非常感谢大家!
2012-11-13 14:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-386859-1-1.html




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

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