如何用c解一元一次方程

就像62x=25,求x=多少,怎么用c编具体的就是一道三元一次方程,你看看能解决的话就帮我看看3x-0.1y-0.2z=.850.1x+7y-0.3z=-19.30.3x... 就像62x=25,求x=多少,怎么用c编
具体的就是一道三元一次方程,你看看能解决的话就帮我看看
3x-0.1y-0.2z=.85
0.1x+7y-0.3z=-19.3
0.3x-0.2y+10z=71.4
展开
爱o不释手
2007-05-11 · TA获得超过7550个赞
知道大有可为答主
回答量:1207
采纳率:0%
帮助的人:1763万
展开全部
C算法:

#include "stdio.h"
main(){
float a[3][4]={{3 , -0.1 ,-0.2, 0.85 },
{0.1,7, -0.3, -19.3},
{0.3 ,-0.2 ,10, 71.4}};
int i=0;j=0;k=0;
while(i<4)
{
a[0][i]=a[0][i]/a[0][0];
a[1][i]=a[0][i]+a[1][i];
a[2][i]=a[2][i]+a[0][i];
i++;
}
while(j<4)
{
a[1][j]=a[1][j]/a[1][1];
a[0][j]=a[1][j]*a[0][1]+a[0][j];
a[2][j]=a[1][j]*a[2][1]+a[2][j];
j++;
}
while(k<4)
{
a[2][k]=a[2][k]/a[2][2];
a[0][k]=a[2][k]*a[0][2]+a[0][k];
a[1][k]=a[2][k]*a[1][2]+a[1][k];
}
printf("%f",a[t][0]);
printf("%f",a[t][1]);
printf("%f",a[t][2]);
}

C++算法:

#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
void abc(double *[],double[],int);
void main()
{
int n,i,j,k,t;
cout<<"输入方程的元数:";
cin>>n;
double **a=new double *[n],max;
double *b=new double[n];
double *temp=new double[n+1];
if(a==0||b==0||temp==0)
{
cout<<"动态内存申请失败程序终止执行\n";
exit(1);
}
for(i=0;i<n;i++)
{
a[i]=new double[n];
if(a[i]==0)
{
cout<<"动态内存申请失败程序终止执行\n";
exit(1);
}
}
for(i=0;i<n;i++)
{
cout<<"输入第"<<i+1<<"个方程的系数:";
for(j=0;j<n;j++)
cin>>a[i][j];
}
cout<<"输入等号右边的"<<n<<"个数:";
for(i=0;i<n;i++)
cin>>b[i];
for(k=n-1;k>0;k--)
{
max=fabs(a[0][k]);
for(int m=0;m<=k;m++)
{
if(fabs(a[m][k])>max)
{
max=fabs(a[m][k]);
t=m;
}
}
if(max==0)
{
cout<<"方程无解或有无数解\n";
exit(0);
}
for(m=0;m<=k;m++)
{
temp[m]=a[t][m];
a[t][m]=a[k][m];
a[k][m]=temp[m];
}
temp[n]=b[t];
b[t]=b[k];
b[k]=temp[n];
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
a[i][j]-=a[k][j]*a[i][k]/a[k][k];
b[i]-=b[k]*a[i][k]/a[k][k];
a[i][k]=0;
}
}
if(a[0][0]==0)
{
cout<<"方程无解或有无数解\n";
exit(0);
}
cout<<"方程的"<<n<<"个根为:";
abc(a,b,n-1);
cout<<endl;
for(i=0;i<n;i++)
delete[] a[i];
delete[] a; delete[] b; delete[] temp;
}
void abc(double*a[],double b[],int i)
{
if(i==0)
cout<<(b[i]/=a[i][i])<<'\t';
else
{
abc(a,b,i-1);
for(int j=0;j<i;j++)
b[i]-=b[j]*a[i][j];
cout<<(b[i]/=a[i][i])<<'\t';
}
}

供参考!

参考资料: http://www.programfan.com/club/old_showbbs.asp?id=109955

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式