学校1010: 字频统计

来源:互联网 发布:linux如何删除文件夹 编辑:程序博客网 时间:2024/04/27 14:24
Description
给出一段英文文章,统计文章中字母出现的频率(即出现的次数)。字母不区分大小写。按照字母的字典顺序进行柱状显示。 


Input
第一行为一个正整数,表示有多少组测试数据。每组数据的第一行为一个正整数m (m<100),表示每组测试数据的行数。接下来有m行。每行都是由字母、标点、空格等符号组成的字符串。每行最多1000个字符。 
Output
每组数据对应一个柱状显示图输出。上方按照统计频率输出相应高度的“柱”(用星号和点表示,其中星号标识出现频率,点代表空),下方为相应的大写字母。相应参考样例输出。最上方没有多余空行。每组数据结束后有一个空行。 
Sample Input
1
2
Given the coordinates of the vertices of a triangle, and a point.
You just need to judge whether the point is in the Triangle. 
Sample Output
....*.....................
....*.....................
....*..............*......
....*..............*......
....*..............*......
....*..............*......
....*...*....*.....*......
....*...*....**....*......
....*...*....**....*......
*...*..**....**....*......
*...*..**....**..*.*......
*..**.***....**..***......
*..**.***....**..****.....
*.********.*.***.*****....
*.********.*.***.******.*.

ABCDEFGHIJKLMNOPQRSTUVWXYZ


1.字符串减A或a   ; 2.直接输出'*'或 '.',不必建一个二维字符数组储存。3用if(sum[j]>i)来决定输出'*'还是 '。

#include <stdio.h>#include <string.h>#include<ctype.h>#define N 27int main(){    // freopen("input.txt","r",stdin);    char str[100][1100];    int i,j,t,m,sum[N],max;    scanf("%d",&t);    while(t--)    {        memset(sum,0,sizeof(int)*N);        scanf("%d",&m);        getchar();        for(i=0; i<m; i++)            gets(str[i]);        for(i=0; i<m; i++)            for(j=0; str[i][j]!='\0'; j++)            {                if(str[i][j]>='A'&&str[i][j]<='Z')                    sum[str[i][j] - 'A'] ++;                else if(str[i][j]>='a'&&str[i][j]<='z')                    sum[str[i][j] - 'a'] ++;            }//for(i=0; i<N; i++)        // printf("%d",sum[i]);        max=sum[0];        for(i = 0; i < N; i++)        {            if(sum[i] > max)                max =sum[i];        }        for(i=max-1; i>=0; i--)        {            for(j=0; j<N-1; j++)            {                if(sum[j]>i)                {                    putchar('*');                    sum[j]--;       //进入下一行比较                }                else                    putchar('.');            }            putchar('\n');        }        for(i=0; i<N-1; i++)            printf("%c",i+'A');        printf("\n\n");    }    return 0;}




0 0
原创粉丝点击