
c++程序有点问题,高手帮忙一下,急!!!
#include<iostream>#include<math.h>usingnamespacestd;voidcolpivot(float(*a)[31],float*...
#include <iostream>
#include <math.h>
using namespace std;
void colpivot(float (*a)[31],float *x,int n)
{
int k,Pr,i,j;
float t,total;
for(k=0;k<n-1;k++)
{
Pr=k;
for(i=k+1;i<n;i++)
{
if(fabs(a[i][k])>fabs(a[Pr][k]))
Pr=i;
}
if(Pr>k)
for(j=k;j<n+1;j++)
{
t=a[k][j]; a[k][j]=a[Pr][j]; a[Pr][j]=t;
}
for(i=k+1;i<n;i++)
{
t=a[i][k];
for(j=k;j<n+1;j++)
a[i][j]=a[i][j]-(t*a[k][j])/a[k][k];
}
}
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
total=a[i][n];
for(j=n-1;j>i;j--)
total=total-x[j]*a[i][j];
x[i]=total/a[i][i];
}
for(i=0;i<n;i++)
cout<<"x"<<i+1<<"="<<x[i]<<" "<<endl;
}
int main()
{
int i,j,m,n;
int **a;
cin>>m>>n;
a=new int *[n];
for(i=0; i<n; i++)
a[i]=new int [m];
cout<<"\n请输入次方程的系数:"<<endl;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
int x[30];
cout<<"\n高斯列主元消元法的解:"<<endl;
colpivot(a,x,m);
delete []a;
cout<<endl;
return 0;
}
帮忙改错一下,好像就一个错误,应如何改,急!!! 展开
#include <math.h>
using namespace std;
void colpivot(float (*a)[31],float *x,int n)
{
int k,Pr,i,j;
float t,total;
for(k=0;k<n-1;k++)
{
Pr=k;
for(i=k+1;i<n;i++)
{
if(fabs(a[i][k])>fabs(a[Pr][k]))
Pr=i;
}
if(Pr>k)
for(j=k;j<n+1;j++)
{
t=a[k][j]; a[k][j]=a[Pr][j]; a[Pr][j]=t;
}
for(i=k+1;i<n;i++)
{
t=a[i][k];
for(j=k;j<n+1;j++)
a[i][j]=a[i][j]-(t*a[k][j])/a[k][k];
}
}
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
total=a[i][n];
for(j=n-1;j>i;j--)
total=total-x[j]*a[i][j];
x[i]=total/a[i][i];
}
for(i=0;i<n;i++)
cout<<"x"<<i+1<<"="<<x[i]<<" "<<endl;
}
int main()
{
int i,j,m,n;
int **a;
cin>>m>>n;
a=new int *[n];
for(i=0; i<n; i++)
a[i]=new int [m];
cout<<"\n请输入次方程的系数:"<<endl;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
int x[30];
cout<<"\n高斯列主元消元法的解:"<<endl;
colpivot(a,x,m);
delete []a;
cout<<endl;
return 0;
}
帮忙改错一下,好像就一个错误,应如何改,急!!! 展开
展开全部
#include <iostream>
#include <math.h>
using namespace std;
void colpivot(int **a,float *x,int n)
{
int k,Pr,i,j;
float t,total;
for(k=0;k<n-1;k++)
{
Pr=k;
for(i=k+1;i<n;i++)
{
if(fabs(a[i][k])>fabs(a[Pr][k]))
Pr=i;
}
if(Pr>k)
for(j=k;j<n+1;j++)
{
t=a[k][j]; a[k][j]=a[Pr][j]; a[Pr][j]=t;
}
for(i=k+1;i<n;i++)
{
t=a[i][k];
for(j=k;j<n+1;j++)
a[i][j]=a[i][j]-(t*a[k][j])/a[k][k];
}
}
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
total=a[i][n];
for(j=n-1;j>i;j--)
total=total-x[j]*a[i][j];
x[i]=total/a[i][i];
}
for(i=0;i<n;i++)
cout<<"x"<<i+1<<"="<<x[i]<<" "<<endl;
}
int main()
{
int i,j,m,n;
int **a;
cin>>m>>n;
a=new int *[n];
for(i=0; i<n; i++)
a[i]=new int [m];
cout<<"\n请输入次方程的系数:"<<endl;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
float x[30];
cout<<"\n高斯列主元消元法的解:"<<endl;
colpivot(a,x,m);
delete []a;
cout<<endl;
return 0;
}
我只是检查一些语法错误,运行有没有问题要自己调试
#include <math.h>
using namespace std;
void colpivot(int **a,float *x,int n)
{
int k,Pr,i,j;
float t,total;
for(k=0;k<n-1;k++)
{
Pr=k;
for(i=k+1;i<n;i++)
{
if(fabs(a[i][k])>fabs(a[Pr][k]))
Pr=i;
}
if(Pr>k)
for(j=k;j<n+1;j++)
{
t=a[k][j]; a[k][j]=a[Pr][j]; a[Pr][j]=t;
}
for(i=k+1;i<n;i++)
{
t=a[i][k];
for(j=k;j<n+1;j++)
a[i][j]=a[i][j]-(t*a[k][j])/a[k][k];
}
}
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
total=a[i][n];
for(j=n-1;j>i;j--)
total=total-x[j]*a[i][j];
x[i]=total/a[i][i];
}
for(i=0;i<n;i++)
cout<<"x"<<i+1<<"="<<x[i]<<" "<<endl;
}
int main()
{
int i,j,m,n;
int **a;
cin>>m>>n;
a=new int *[n];
for(i=0; i<n; i++)
a[i]=new int [m];
cout<<"\n请输入次方程的系数:"<<endl;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
float x[30];
cout<<"\n高斯列主元消元法的解:"<<endl;
colpivot(a,x,m);
delete []a;
cout<<endl;
return 0;
}
我只是检查一些语法错误,运行有没有问题要自己调试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询