¡¶Êý¾Ý½á¹¹ÊµÑéÓëʵѵ½Ì³Ì(µÚ4°æ)¡·³ÌÐò´úÂë ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚËÄ ÎÄÕ¡¶Êý¾Ý½á¹¹ÊµÑéÓëʵѵ½Ì³Ì(µÚ4°æ)¡·³ÌÐò´úÂë¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ

int display( int y, char *str ) // ÔÚÆÁĻָ¶¨ÐÐÏÔʾһÐÐÊý¾Ý { clreol(); // Çå³ýÒ»ÐÐ gotoxy( 1, y ); // ¹â±êÒƶ¯µ½ÐÐÊ× printf( str ); fflush( stdout ); return 0;

}

int append() // ÔÚµ±Ç°¹â±êϼÓÈëÒ»¿ÕÐÐ

{ int i; int nr;

// ±à¼­¼Ç¼ÔÚ»º³åÇøÖÐÐкÅ

nr = edit.shiney - 1 + edit.scry; if( edit.allrec >= MAXROW ) {// ±à¼­ÐÐÊýÔ½½ç

display( 25, \Too many lines\ return -1; }

for( i = edit.allrec; i > nr + 1; i-- )

// Êý¾ÝºóÒÆÒ»ÐÐ

memcpy( edit.info[i], edit.info[i-1], MAXCOL + 1 );

memset( edit.info[nr+1], 0, MAXCOL + 1 ); // ÔÚ¹â±êºó²åÈëÒ»¿ÕÐÐ edit.allrec++;

if( edit.shiney >= 24 ) { // ¹â±êËùÔÚλÖÃΪÆÁÄ»×îºóÒ»ÐÐ edit.shiney = 24; edit.scry++; // ÆÁÄ»ÏÂÒÆÒ»ÐÐ } else edit.shiney++; // ¹â±êÏÂÒÆÒ»ÐÐ refresh_scr();

// Ë¢ÐÂÆÁÄ»

return 0;

}

int search( char *str ) // ²éÕÒÎļþÖÐÆ¥Åä×ֶΣ¬·µ»Ø0: ²éÕҳɹ¦ { int i, j, len, cmplen; len = strlen( str ); if( len == 0 ) // ÎÞ²éÕÒÄÚÈÝ return -1; j = edit.shinex;

for( i = edit.scry + edit.shiney - 1; i < edit.allrec; i++ ) {

88

cmplen = strlen( edit.info[i] ) - len; for( ; j <= cmplen; j++ ) if( strncmp( edit.info[i] + j, str, len ) == 0 ) break; if( j <= cmplen ) // ²éµ½Æ¥Åä×ֶΠbreak;

j = 0; }

if( i == edit.allrec )

// ËÑË÷µ½Îļþ⣬±íʾ²éÕÒʧ°Ü

return -1;

if( i >= edit.scry && i < edit.scry + 24 ) { // Æ¥ÅäµÄÄÚÈÝÔÚµ±Ç°ÆÁÄ»ÄÚ edit.shinex = j + 1; edit.shiney = i + 1 - edit.scry; gotoxy( edit.shinex, edit.shiney ); } else { // Æ¥ÅäµÄÄÚÈݲ»ÔÚµ±Ç°ÆÁÄ» edit.shinex = j + 1; edit.shiney = 1; edit.scry = i; refresh_scr(); }

return 0;

}

89

ʵÑé4 ÂÃÓηÏß°²ÅÅÄ£Äâϵͳ

[²Î¿¼³ÌÐò]£º #include #define n 5

#define max 1000 typedef int array[n][n]; array a,b,c,d; int path[n],s[n]; int p(array b, int *m) {

int pi,pj,pk; *m=0;

For(pi=0;pi

pk=max;

for(pj=0;pj

if((pk>0)&&(pk!=max)) {

*m=*m+pk;

For(pj=0;pj

b[pi][pj]=b[pi][pj]-pk; } }

for(pj=0;pj

pk=max;

for(pi=0;pi

if((pk>0)&&(pk!=max)) {

*m=*m+pk;

for(pi=0;pi

90

b[pi][pj]=b[pi][pj]-pk; } } return; }

main() {

int i,j,k,min,m1,m,jj,kk,si,sj;

printf(¡°\\n input travelling expenses table:¡±); printf(¡°\\n¡±); for(i=0;i

scanf(¡°%d¡±,&a[i][j]); for(i=0;i

path[0]=0; i=0;

s[0]=max;

for(j=1;j

m1=max;

for(j=0;j

if((s[j]==0)&&(b[i][j]!=max)) {

for(si=0;si

c[i][kk]=max; c[kk][j]=max; }

p(&c,&m); if(m+b[i][j]

91