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

📄 8-2-2.c

📁 2005软件工程师考试下午编程题源代码
💻 C
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/

#include <stdio.h>
#include <conio.h>
#define n 30
long tn[n],td[n],score[n+1][10],order[n];
char s[80];
int mark[]={15,12,9,7,6,5,4,3,2,1};
FILE *fp,*fopen();

main(){
	int c,g,k,i,j,b[10],temp;
	long e,d,t,tt,dd;
	char * p;
	for ( i=0; i<=n; i++ )
	for ( j=0; j<10; j++ )
	score[i][j] = 0;
	fp = fopen( "source","r" );  /* 以读方式打开文件source */
	p = fgets( s,80,fp );   /* 读fp所指文件的下一行字符串于s */
	while (p){
		g = 1; k = 0; p += 40;
		while ( k<10 ) {
			temp=( (*p++)-'0')*10;
			c = temp + ((*p++)-'0' );
			b[k++] = c;
			if (c<=n) {
				if (c) {
					i = 0;
					while (c != b[i++]);
					if ( i<k ) {
						g = 0;break;
					}
				}
				else {
					g = 0;break ;
				}
			}
		}
		if (g)
		for (i=0;i<k;i++)
		if (b[i])
		score[b[i]][i]++;
		p = fgets( s, 80,fp );
	}
	fclose(fp);/* 关闭 fp 所指文件 */
	for ( i=1;i<n;i++ ){
		for ( t=0,d=0,j=0;j<10;j++ ){
			t += ( e=score[i][j] );
			d += e * mark[j];
		}
		tn[i-1] = t;td[i-1] = d;order[i-1] = i;
	}
	for ( i=0;i<n-1;i++){
		k = i;
		for ( j=i+1;j<n;j++ )
		if ( (t = td[order[j]-1]) > (d = td[order[k]-1]) )
		k = j;
		else
		if (t == d){
			tt = order[j];
			dd =order[k];
			for ( c=0;c<10;c++ )
			if ( ( e = score[tt][c]-score[dd][c])>0 ){
				k = j;break;
			}
			else
			if (e<0) break;
		}
		if ( k != i ) {
			t = order[k]; order[k] = order[i]; order[i] = t;
		}
	}
	for ( i=0;i<10;i++ )
	printf( "%2d %2d %d %d\n",	i+1,order[i],td[order[i]-1],tn[order[i]-1] );

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -