【发布时间】:2014-07-18 08:17:17
【问题描述】:
下面给出的是一个 C++ 程序,用于在联立线性方程中找到 x 和 y 的值。
using namespace std;
#include<iostream>
int main()
{
int m,n,a,b,c,p,q,r,x,y;
cout<<"For the system of equation ax+by=c and px+qy=r,";
cout<<"\nGive the value of a,b,c,p,q and r respectively:";
cin>>a>>b>>c>>p>>q>>r;
m=q-((p*b)/a);
n=r-((p*c)/a);
if(q==0)
cout<<"No solution";
else
y=(n/m);
x=(c-(b*y))/a;
cout<<"x= "<<x<<" & y= "<<y<<"\n";
return 0;
}
这个程序的问题是当我将输入作为
3 1 13 1 6 -7 我得到 x=4 & y=-1
那是
对于方程组 ax+by=c 和 px+qy=r,
分别给出 a,b,c,p,q 和 r 的值:3 1 13 1 6 -7
x= 4 & y= -1
现在我再次给出相同的输入,但方式略有不同
1 6 -7 3 1 13 我得到 x=5 & y=-2
那是
对于方程组 ax+by=c 和 px+qy=r,
分别给出 a,b,c,p,q 和 r 的值:1 6 -7 3 1 13
x= 5 & y= -2
正确答案是 x= 5 & y= -2。
现在的问题是,我们有两个方程,我们必须求解 x 和 y。在这里,我们通过哪种方法求解这些方程并不重要,因为通过任何方法我们都会得到 x 和 y 的值分别为 5 和 -2。
所以对于相同的两个方程,为什么我会得到两个不同的解决方案。
请帮助我理解程序中的问题。
【问题讨论】:
标签: c++ validation input