📄 8-2-5.c
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/
#include <stdio.h>
#define MN 20
typedef int Vector[MN];
Vector Matrix[MN];
int N;
void main( int argc, char *argv[] ){
Vector a,b;
int i,j,x,k;
void PrintVector();
void FillVector();
FILE *fp,*fopen();
if (( fp=fopen( argv[argc-1],"r" )) == NULL ){
printf( "Cannot open file %s\n",argv[argc-1] );
exit(1);
}
fscanf( fp,"%d",&N );
printf("%d\n",N);
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
fscanf( fp,"%d",&Matrix[i][j] );
printf(" %2d",Matrix[i][j]);
}
printf("\n");
}
fscanf( fp,"%d%d",&k,&x );
printf("k=%d\nx=%d\n",k,x);
fclose( fp );
FillVector( a,b,k,x );
printf( "The Vector A is:\n" );
PrintVector( a );
printf( "The vector B is:\n" );
PrintVector( b );
}
void PrintVector(Vector v){
int i;
printf( "[" );
for( i=0; i<N; i++ )
printf( "%5d",v[i] );
printf( ")\n" );
}
void FillVector(Vector a, Vector b,int k,int x ){
int i,j,temp;
for ( i=0; i<N; i++){
b[i] = x-Matrix[i][k];
a[i] = x;
}
for ( i=0; i<N; i++ ){
for ( j=0; j<N; j++ ){
temp = b[i]+Matrix[i][j];
if ( Matrix[i][j]==1 && temp > a[j] ){
a[j--] = temp;
i=0;
}
else if( Matrix[i][j]==-1 && temp < a[j] ){
b[i] = a[j]+1;
j = -1 ;
}
else if (Matrix[i][j]==0)
if ( a[j]>b[i] ){
b[i] = a[j];
j = -1;
}
else if( a[j] < b[i] ){
a[j--] = b[i];
i = 0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -