有几个变量就需要几个方程。
解线性方程组的方法很多,例如高斯消去法。
“最合适的解” -- 什么叫最合适,要用一个一个方程描述/写出来。
方程个数少于变量个数时得无穷个解。
嵌套,并且,下面是个小例子,可能有助于你。。。int m,n
/*
* 此例实现二元二次方程求解。
* 应用题为:100个和尚,100个苹果,刚好吃完。
* 大和尚每人吃三个苹果,小和尚三人伙吃一个苹果。
* 求大和尚和小和尚各有多少!
* &&n*3+m/3=100
* &&m+n=100
*/
for (n = 0n <(int)(100/3)n++) //定义大和尚在100/3以内。
{
for (m = 0m <(int)(100)m++) //按理应定义小和尚在100*3以内,但不可能超过100,所以定义小和尚在100以内。
{
if (n+m==100 &&n*3+m/3==100) //n+m=100定义和尚,n*3+m/3=100定义苹果。
{
Console.WriteLine("大和尚有{0}人,小和尚有{1}人。",n,m)//输出结果。
}
}
}
Console.ReadKey()
//使用编译器 visual c++6.0/*用C语言编程解下面这样一个方程:
a +b +c=1
a*x +b*y +c*z=m1
a*x*x +b*y*y +c*z*z=m2
a*x*x*x +b*y*y*y +c*z*z*z=m3
a*x*x*x*x +b*y*y*y*y +c*z*z*z*z=m4
a*x*x*x*x*x +b*y*y*y*y*y +c*z*z*z*z*z=m5
其中,m1、m2、m3、m4、m5是已知的,a、b、c、x、y、z是要求解的,不知道用c怎么求解,请高手指教。
*/
#include <iostream.h>
void main(void)
{
long int m1,m2,m3,m4,m5//装已知的数
long int *m[5]={&m1,&m2,&m3,&m4,&m5}
long int a,b,c,x,y,z
a=b=c=x=y=z=0//装未知的数并初始化
for(int p=0p<5p++)
{
cout<<"请输入已知数"<<p<<"\n"
cin>>*(m[p])
}//输入 M1 M2 M3 M4 M5
int luoji=1//逻辑判断装置
//a、b、c、x、y、z
for(luojia++)
{
for(luojib++)
{
for(luojic++)
{
for(luojix++)
{
for(luojiy++)
{
for(luojiz++)
{
if(
luoji=! (
(a+b+c==1)&&
(a*x+b*y+c*z==m1)&&
(a*x*x+b*y*y+c*z*z==m2)&&
(a*x*x*x+b*y*y*y+c*z*z*z==m3)&&
(a*x*x*x*x+b*y*y*y*y+c*z*z*z*z==m4)&&
(a*x*x*x*x*x+b*y*y*y*y*y+c*z*z*z*z*z==m5)
)
)
{
cout<<"正确答案如下:"<<a<<"\n"<<b<<"\n"<<c<<"\n"<<x<<"\n"<<y<<"\n"<<z<<"\n"
cout<<"程序运行完毕"
}
}
}
}
}
}
}
}