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

📄 8-2-26.c

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

#include <stdio.h>
#include <ctype.h>
#define MAXN 300
typedef struct{
  	int no;	/*选手编号*/
 	int num;	/*完成的题目数量*/
 	int time;	/*完成题目的总用时*/
 	int d[8];	/*d[i]用于记录提交第i个题目错误答案的次数*/
 	int a[8];	/*a[i]用于记录第i个题目是否已经提交正确答案*/
}Info;

void Statistic(){
char ch,pass;
int i,j,k,h,m,t,time,MaxIndex;
Info R[MAXN+1];
for(i=1; i<=MAXN; i++) { /*数组R的元素置初值0*/
R[i].no = 0; R[i].num = 0; R[i].time = 0;
for(j=0; j<8;j++) {
R[i].d[j] = 0; R[i].a[j] = 0;
}
}/*for*/
MaxIndex = 0;
while(1) { /*录入一名选手提交答案的信息(小时:分钟,选手编号,题目号,是否正确)*/
printf("小时:分钟,选手编号,题目号,是否正确\n");
scanf("%d:%d,%d,%c,%c",&h,&m,&k,&ch,&pass);
if(h==0) break;
R[k].no = k;   /*k为选手编号*/
time = (h-9)*60+m ;   /*计算答题时间,以分钟为单位*/
if(isupper(ch)) ch = 'a'+ch-'A';
if(pass != 'Y'&& pass != 'y') {
R[k].d[ch-'a']++; continue;
}
if(R[k].a[ch-'a'] == 1) continue;
R[k].a[ch-'a'] = 1;
R[k].num++;
R[k].time += time+R[k].d[ch-'a']*20 ;
if(k>MaxIndex) MaxIndex = k;
}/*while*/
for(i=1; i<MaxIndex;i++) { /*选择排序*/
for (t=i,j=i+1;j<=MaxIndex;j++)
if(R[t].num<R[j].num ||R[t].num==R[j].num && R[t].time>R[j].time ) t = j;
if( t != i ) { R[0]=R[t];R[t]=R[i];R[i]=R[0];}
}/*for*/
k = 1;R[0] = R[1];
for(i=1; i<=MaxIndex; i++)  /*输出排名情况*/
if(R[i].num>0) {
if(R[i].num!=R[0].num || R[i].time!=R[0].time) k++;
R[0]= R[i] ;
printf("%d:  %3d  %4d  %5d \n",k,R[i].no,R[i].num,R[i].time);
}/*if*/
}/*Statistic*/

main()
{
 Statistic();
}

⌨️ 快捷键说明

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