- 最後登錄
- 2022-2-11
- 在線時間
- 3 小時
- 註冊時間
- 2008-11-15
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5320646
- 帖子
- 184
- 積分
- 606 點
- 潛水值
- 10574 米
| 本帖最後由 p12332145600 於 2011-3-28 08:33 AM 編輯
-
- #include<stdio.h>
- #define p printf
- void main(void)
- {
- int a[3][4]={{1,-2,4,12},{2,-1,5,18},{-1,3,-3,-8}};
- int i,j,x,tmp,divide1,divide2;
- for(i=0;i<3;i++){
- for(j=0;j<4;j++)
- p("%d ",a[i][j]);
- p("\n");
- }
- for(i=0;i<3;i++)
- {
- for(j=i;j<4;j++)
- {
- if(i==j) //(0.0)(1.1)(2.2) 位置
- {
- tmp=a[i][j];
- a[i][j]=1; //(0.0)(1.1)(2.2) 位置設1
- for(x=i+1;x<4;x++)
- {
- a[i][x]=a[i][x]/tmp;
- }
- if(i==0)
- {
- divide1=a[i+1][j]-a[i+1][j]*2;
- divide2=a[i+2][j]-a[i+2][j]*2;
- //求出差取反項
- }
- else if(i==1)
- {
- divide1=a[i-1][j]-a[i-1][j]*2;
- divide2=a[i+1][j]-a[i+1][j]*2;
- }
- else if(i==2)
- {
- divide1=a[i-2][j]-a[i-2][j]*2;
- divide2=a[i-1][j]-a[i-1][j]*2;
- }
- }
- if(i==0)
- {
- a[i+1][j]=a[i][j]*divide1+a[i+1][j];
- a[i+2][j]=a[i][j]*divide2+a[i+2][j];
- //求出反項乘那一行在和別行做相加
- }
- else if(i==1)
- {
- a[i-1][j]=a[i][j]*divide1+a[i-1][j];
- a[i+1][j]=a[i][j]*divide2+a[i+1][j];
- }
- else if(i==2)
- {
- a[i-2][j]=a[i][j]*divide1+a[i-2][j];
- a[i-1][j]=a[i][j]*divide2+a[i-1][j];
- }
- }
- }
- for(i=0;i<3;i++){
- for(j=0;j<4;j++)
- p("%d ",a[i][j]);
- p("\n");
- }
- }
複製代碼 ... |
|