📄 ybusflow.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 + -