读取带空格字符串时候可以用while((c=getchar())!='\n') 2800:垂直直方图

2800:垂直直方图

  • View
  • Submit
  • Statistics
  • Clarify
Time Limit:
1000ms
Memory Limit:
65536kB
Description
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。
Input
输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。
Output
输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。
Sample Input
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
Sample Output
                            *
                            *
        *                   *
        *                   *     *   *
        *                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
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
 
     
 
     
 
     
#include
#include
using namespace std;
/**
	输入地方耽误了很久
	判断有空格的字符串可以用b=getcahr()!='\n;


  */


int a[27];
char c[100];


int main(){
	int i,j;
	char b;


	for(i=0;i<4;i++){
		while((b=getchar())!='\n'){
			if(b<='Z' && b>='A'){
				a[b-65]++;
			}
		}
	}
	




	int max=0;
	for(i=0;i<26;i++){
		if(a[i]>max)
			max=a[i];
	}
    //从最大开始往下输出
	for(j=max;j>0;j--){
		for(i=0;i<26;i++){
			if(a[i]==j){
				printf("* ");
				a[i]--;
			}else{
				printf("  ");
			}
		}
		printf("\n");
	}


	for(i=65;i<91;i++){
		printf("%c ",i);
	}
	printf("\n");




	
	
	return 0;
}

你可能感兴趣的:(程序设计引导及在线实践)