急急急!C⼀C++高手请进!

2025-12-16 12:00:03
推荐回答(2个)
回答1:

#include
#include
using namespace std;

#define N 100

void Gaussdiedai(int n, double a[][(N+1)], double *x)
{
int i,j,k,r,l,c;
double m;
int cc[N];
for(j=0;j cc[j]=j;
for(k=0;k {
m=0;
for(i=k;i for(j=k;j if(fabs(a[i][j])>m)
{
r=i;c=j;
m=fabs(a[i][j]);
}
if(r>k)
for(j=k;j {
m=a[k][j];
a[k][j]=a[r][j];
a[r][j]=m;
}
if(c>k)
{
for(i=0;i {
m=a[i][k];
a[i][k]=a[i][c];
a[i][c]=m;
l=cc[k];
cc[k]=cc[c];
cc[c]=l;
}
}
for(i=k+1;i {
m=a[i][k]/a[k][k];
for(j=k+1;j a[i][j]-=m*a[k][j];
}
}
x[cc[n-1]]=a[(n-1)][n]/a[(n-1)][(n-1)];
for(i=n-2;i>=0;i--)
{
m=a[i][n];
for(j=i+1;j m-=a[i][j]*x[cc[j]];
x[cc[i]]=m/a[i][i];
}
}

void main()
{
double a[N][N+1], b[N], x[N];
for(int i=1; i<=N; ++i)
{
b[i-1] = 338350+5051*i-2*i*i;
a[i-1][i-1] = 5051-i;
a[i-1][N] = b[i-1] ;
}
for(i=1; i<=N; ++i)
{
for(int j=1; j<=N; ++j)
{
if(i == j) continue;
a[i-1][j-1] = j;
}
}

for(i=0; i {
for(int j=0; j<=N; ++j)
{
a[i][j] /= 10000;
}
}
int n = N;
Gaussdiedai(n, a, x);
for(i=0;i {
cout << "x["<<(i+1)<<"]="<< x[i] < }
}

答案正确:
x[1]=1 , x[2]=2 , x[3]=3 , x[4]=4 , x[5]=5 , x[6]=6 , x[7]=7 , x[8]=8 , x[9]=9 ,
x[10]=10 , x[11]=11 , x[12]=12 , x[13]=13 , x[14]=14 , x[15]=15 , x[16]=16 , x[
17]=17 , x[18]=18 , x[19]=19 , x[20]=20 , x[21]=21 , x[22]=22 , x[23]=23 , x[24]
=24 , x[25]=25 , x[26]=26 , x[27]=27 , x[28]=28 , x[29]=29 , x[30]=30 , x[31]=31
, x[32]=32 , x[33]=33 , x[34]=34 , x[35]=35 , x[36]=36 , x[37]=37 , x[38]=38 ,
x[39]=39 , x[40]=40 , x[41]=41 , x[42]=42 , x[43]=43 , x[44]=44 , x[45]=45 , x[4
6]=46 , x[47]=47 , x[48]=48 , x[49]=49 , x[50]=50 , x[51]=51 , x[52]=52 , x[53]=
53 , x[54]=54 , x[55]=55 , x[56]=56 , x[57]=57 , x[58]=58 , x[59]=59 , x[60]=60
, x[61]=61 , x[62]=62 , x[63]=63 , x[64]=64 , x[65]=65 , x[66]=66 , x[67]=67 , x
[68]=68 , x[69]=69 , x[70]=70 , x[71]=71 , x[72]=72 , x[73]=73 , x[74]=74 , x[75
]=75 , x[76]=76 , x[77]=77 , x[78]=78 , x[79]=79 , x[80]=80 , x[81]=81 , x[82]=8
2 , x[83]=83 , x[84]=84 , x[85]=85 , x[86]=86 , x[87]=87 , x[88]=88 , x[89]=89 ,
x[90]=90 , x[91]=91 , x[92]=92 , x[93]=93 , x[94]=94 , x[95]=95 , x[96]=96 , x[
97]=97 , x[98]=98 , x[99]=99 , x[100]=100

回答2:

这个程序好写
但是得知道高斯全主元消去法是怎么回事才行
自己在网上搜一搜资料嘛