http://acm.pku.edu.cn/JudgeOnline/problem?id=2136
题意:统计一串字符中A~Z的个数,然后输出柱状图形。
#include <stdio.h>
#include <iostream>
using namespace std;
char str[74];
int number[26];
void Work()
{
int i,j,temp;
memset(number,0,sizeof(number));
for(j = 0;j < 4;j ++)
{
cin.getline(str,74);
for(i = 0;str[i] != '/0';i ++)
{
if(str[i] >= 'A' && str[i] <= 'Z')
number[str[i] - 'A'] ++;
}
}
temp = 0;
for(i = 0;i < 26;i ++)
{
if(number[i] > temp)
temp = number[i];
}
while(temp)
{
for(i = 0;i < 26;i ++)
{
if(number[i] == temp)
{
printf("*");
number[i] --;
}
else
printf(" ");
if(i != 25)
printf(" ");
}
temp --;
printf("/n");
}
for(i = 0;i < 26;i ++)
{
printf("%c",i+'A');
if(i != 25)
printf(" ");
}
printf("/n");
}
int main()
{
Work();
return 0;
}
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
*
*
* *
* * * *
* * * *
* * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z