欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言怎么求線性方程組的通解

黃文隆2年前18瀏覽0評論

C語言怎么求線性方程組的通解?

給,下面的代碼已經編譯運行確認,肯定好用了,試試吧:)

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

#define

number

20

#define

esc

0x1b

#define

enter

0x0d

float

a[number][number+1]

,ark;

int

flag,n;

void

exchange(int

r,int

k);

float

max(int

k);

void

message();

int

main()

{

float

x[number];

/*此數組用于存放方程解*/

int

k,i,j;

char

celect;

system("cls");

printf("\n用gauss列主元消元法解線性方程組");

printf("\n1.解方程組請按enter.");

printf("\n2.退出程式請按esc.");

celect=getch();

if(celect==esc)

exit(0);

printf("\n

輸入方程組的維數:n=");

scanf("%d",&n);

printf("\n現在輸入系數矩陣a和向量b:");

for(i=1;i<=n;i++)

{

printf("\n請輸入a%d1--a%d%d系數和向量b%d:

\n",i,i,n,i);

/*實現將每一行中的系數和向量一次性輸入,數之間用空格格開,輸完后回車確定*/

for(j=1;j<=n+1;j++)

/*將剛才輸入的數存入數組*/

scanf("%f",&a[i][j]);

}

for(k=1;k<=n-1;k++)

{

ark=max(k);

if(ark==0)

/*判斷方程是否為線性方程,即是否合法*/

{

printf("\n此方程組不合法!");message();

}

else

if(flag!=k)

exchange(flag,k);

for(i=k+1;i<=n;i++)

for(j=k+1;j<=n+1;j++)

a[i][j]=a[i][j]-a[k][j]*a[i][k]/a[k][k];

}

x[n]=a[n][n+1]/a[n][n];

for(

k=n-1;k>=1;k--)

{

float

me=0;

for(j=k+1;j<=n;j++)

{

me=me+a[k][j]*x[j];

}

x[k]=(a[k][n+1]-me)/a[k][k];

}

for(i=1;i<=n;i++)

{

printf("\nx%d=%f",i,x[i]);

}

message();

getch();

return

1;

}

void

exchange(int

r,int

k)

/*交換行的矩函數*/

{

int

i;

for(i=1;i<=n+1;i++)

a[0][i]=a[r][i];

for(i=1;i<=n+1;i++)

a[r][i]=a[k][i];

for(i=1;i<=n+1;i++)

a[k][i]=a[0][i];

}

float

max(int

k)

/*比校系數大小的函數*/

{

int

i;

float

temp=0;

for(i=k;i<=n;i++)

if(fabs(a[i][k])>temp)

{

temp=fabs(a[i][k]);

flag=i;

}

return

temp;

}

void

message()

/*實現菜單選擇的函數*/

{

printf("\n

繼續運算按

enter

,退出程式按

esc!");

switch(getch())

{

case

enter:

main();

case

esc:

exit(0);

default:{printf("\n不合法的輸入!");message();}

}

}

java 線性數組,C語言怎么求線性方程組的通解