用的方法多一些,解个二元二次方程组,很简单,但是要方法
我用C做了一个高斯消去法:你自己去把改为C++吧・・#include
#define MAX 20
float gauss(int n,float x[][MAX],float y[]);
float selectmain(int k,int n,float x[][MAX],float y[]);
float sum(int n,int i,int j,float x[][MAX],float y[]);
void main()
{
int i,j,n,end=1;
float a[MAX][MAX]={};
float b[MAX]={};
while(end==1)
{
printf("input n=");
scanf("%d",&n);
printf("input a[%d][%d]=",n,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("input b[%d]=",n);
for(i=1;i<=n;i++)
{
scanf("%f",&b[i]);
}
gauss(n,a,b);
printf("输入end的值(毁旦1代表继续输入/0代表结束)纤慧扰");
scanf("%d",&end);
}
exit(0);
}
float gauss(int n,float a[][MAX],float b[])
{
int i,j,k;
for(k=1;k<=n;k++)
{
selectmain(k,n,a,b);
for(j=k+1;j<=n;j++)
{
a[k][j]=a[k][j]/a[k][k];
}
b[k]=b[k]/a[k][k];
for(i=k+1;i<=n;i++)
{
for(j=k+1;j<=n;j++)
{
a[i][j]=a[i][j]-a[i][k]*a[k][j];
}
}
for(i=k+1;i<=n;i++)
{
b[i]=b[i]-a[i][k]*b[k];
}
}
for(i=n-1;i>=1;i--)
{
b[i]=b[i]-sum(n,i,j,a,b);
}
for(i=1;i<=n;i++)
{
printf("b[%d]=%f",i,b[i]);
printf("\n");
}
}
float selectmain(int k,int n,float a[][MAX],float b[])
{
int i,j,l;
float d,t;
d=a[k][k];
l=k;
for(i=k+1;i
if(fabs(a[i][k]>fabs(d)))
{
d=a[i][k];
l=i;
}
}
if(d==0)
{
printf("error"碧简);
exit(0);
}
while(l!=k)
{
for(j=k;j<=n;j++)
{
t=a[l][j];
a[l][j]=a[k][j];
t=a[k][j];
}
t=b[k];
b[k]=b[l];
t=b[l];
}
return a[k][k];
}
float sum(int n,int i,int j,float a[][MAX],float b[])
{
float s=0;
for(j=i+1;j<=n;j++)
{
s=s+a[i][j]*b[j];
}
return s;
}
具体代码如下:
#include
#include
using namespace std;
int main()
{ double a,b,c,root1,root2;
cout<<"请输入一元二次方程的系数(a,b,c):"<模漏
if(a==0) //判断系数a是否为0
{ cout<<"不是一个一元二次方程"<
}
double t =b*b-4*a*c;
if(t<0) //判断议程是否有实根
{ cout<<"方程没有实根"知盯<
}
if(t==0) //判断议程是否有等根
root1=root2=-b/(2*a);
else
{
root1=(-b+sqrt(t))/(2*a);
root2=(-b-sqrt(t))/(2*a);
}
cout<<"方程的根搭码和为:"<
}
include
include
int main()
{
using namespace std;
float a,b,c,d,e,f;
cout<<"请输入二元一次方程组"<
cin>>a;
cout<<"b=";
cin>>b;
cout<<"c=";
cin>>c;
cout<<梁陵"d="举渣裤;
cin>>d;
cout<<"e=";
cin>>e;
cout<<"f=";
cin>>f;
if(a*e==b*d)
{
cout<<"此正简方程无解"<
else
{
cout<<"x="<<(b*f-e*c)/(a*e-b*d)<
return 0;
}
让他和他分用户
全部用公式。。
