⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8-2-5.c

📁 2005软件工程师考试下午编程题源代码
💻 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 + -