您的位置:首页 > 其它

“树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛E 成绩统计图(红)

2009-04-28 13:24 302 查看
E 成绩统计图(红)

Time Limit:1000MS Memory Limit:65536K

Total Submit:46 Accepted:5

Description
“树人杯”暨第三届辽宁科技大学校园程序设计竞赛圆满结束后,大会要进行成绩统计并进行分析。做出柱状可视化统计图。此次比赛共有9道题目,分别为A,B,C……I。在统计各道题目的通过次数之后,输出柱状图(柱状图的高度由各题的通过次数决定,1次用一个“*”表示,见例图)。

Input
输入:每次系统给一系列通过题目的题号(字母),如BCAABCDEFIGA。每次输入的字符串长度不超过72,输入以#结束。

Output
输出:按各题的通过次数打印出柱状统计图。(每两个柱之间用1个空格隔开)

例图:

*

* * *

* * * * * * * *

A B C D E F G H I

说明:BCAABCDEFIGA中有3个A(A题通过了3次),2个B,2个C,D、E、F、G、I一个,没有H。

Sample Input

AAAABBCDEFFFFIGGGH
AGGHADGII
#


Sample Output

*         *
*         * *
* *       * *
* * * * * * * * *
A B C D E F G H I
*
*           *   *
*     *     * * *
A B C D E F G H I


#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int la, i, j, k, flag, temp[10];
char s[73], p[73][10];
while (cin >> s && s[0] != '#')
{
for (i = 0; i < 73; ++i)
{
for (j = 0; j < 10; ++j)
{
p[i][j] = ' ';
}
}
for (i = 0; i < 10; ++i)
{
temp[i] = 0;
}
la = strlen(s);
for (k = 0; k < la ; ++k)
{
switch(s[k])
{
case 'A':
p[temp[0]][0] = '*';
temp[0]++;
break;
case 'B':
p[temp[1]][1] = '*';
temp[1]++;
break;
case 'C':
p[temp[2]][2] = '*';
temp[2]++;
break;
case 'D':
p[temp[3]][3] = '*';
temp[3]++;
break;
case 'E':
p[temp[4]][4] = '*';
temp[4]++;
break;
case 'F':
p[temp[5]][5] = '*';
temp[5]++;
break;
case 'G':
p[temp[6]][6] = '*';
temp[6]++;
break;
case 'H':
p[temp[7]][7] = '*';
temp[7]++;
break;
case 'I':
p[temp[8]][8] = '*';
temp[8]++;
break;
}
}
flag = temp[0];
for (i = 1; i < 9; ++i)
{
if (flag < temp[i])
{
flag = temp[i];
}
}
for (i = flag - 1; i >=0; --i)
{
for (j = 0; j < 8; ++j)
{
cout << p[i][j] << ' ';
}
cout << p[i][8] << endl;
}
cout << "A B C D E F G H I" << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐