?? 導納矩陣的形成.cpp
字號:
#include<iostream.h>
#include<stdio.h>
#define N 4
#define M N*(N-1)/2
void trianglestore(int A[N][N])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<A[i][j];
cout<<endl;
}
int U[M],JU[M],IU[N],L[M],IL[M],JL[N],D[N];
for(i=0;i<N;i++)
IU[i]=0;
//存儲A的上三角部分的非零元的值,按行一次存儲//
int k=0;
int q=0;
for(i=0;i<N;i++)
{
for( j=i+1;j<N;j++)
{
if(A[i][j]!=0)
{
U[k]=A[i][j];
//存儲A中上三角部分的非零元的列號//
JU[k]=j;
k++;
//存儲A中上三角部分每行第一個非零元再U中的位置(首地址)//
if(IU[i]=0)
{
IU[i]=1+q;
q++;
}
else q++;
}
}
if(IU[i]=0)IU[i]=q+1;
}
k=0;
q=0;
for(j=0;j<N-1;j++)
for(i=j+1;i<N;i++)
{
//按列存儲A中的下三角非零元素的值//
if(A[i][j]!=0)
{
L[k]=A[i][j];
//按列存儲A中下三角非零元素的行號//
IL[k]=i;
k++;
//存儲A的下三角部分每列第一個非零元在L中的位置(首地址)//
if(JL[j]=NULL)
{
JL[j]=1+q;
q++;
}
}
JL[j]=q;
}
for(i=0;i<N;i++)
D[i]=A[i][i];
cout<<"輸入U的值"<<endl;
for(k=0;k<N-1;k++)
cout<<U[k]<<endl;
cout<<"輸入JU的值"<<endl;
for(k=0;k<N-1;k++)
cout<<JU[k]<<endl;
cout<<"輸入IU的值"<<endl;
for( i=0;i<N;i++)
cout<<IU[i]<<endl;
}
void main()
{
int B[N][N];
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
cin>>B[i][j];
}
cout<<endl;
}
trianglestore(B);
getchar();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -