之前写的略乱。。。整理了一下
```cpp
#include<stdio.h>
#include<string.h>
int cnt[26]; //计数用数组
int main()
{
memset(cnt,0,sizeof(cnt)); //数组初始化为0
for(int i = 0 ; i <= 3 ; i ++)
{
bool b = false; //循环终止用变量
for(int j = 0; j <= 71; j++)
{
if(b==true) break; //如果终止用变量为真,立即终止循环
int in;
scanf("%c",&in); //读入字符并以int存贮
if(in == '\n') b = true; //如果为换行符,终止用变量设为真
if(in <= 'Z'&&in >= 'A') //如果读入字符ASCII码在A~Z之间
{
cnt[in-65] ++; //计数用数组相应位置+1
} //(A的ASCII是65,所以若为A,减去65等于0,以此类推)
}
}
int max = 0; //初始化最大值
for(int i = 0; i <= 25; i ++) //遍历数组,找出计数值最大的一项并赋值给max
if(cnt[i] > max) max = cnt[i];
for(int i = max; i > 0; i --) //从最大值开始输出(行)
{
for(int j = 0; j <= 25;j ++) //是否输出(列)
{
if(cnt[j] >= i) printf("*"); //如果比当前值(i)大或相等,输出*
else printf(" "); //否则输出“ ”
if(j != 25) printf(" "); //如果不是最后一项,输出“ ”
else printf("\n"); //否则换行
}
}
printf("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");//输出A B …… Z
return 0;
}
```
五个测试点全WA
信息:Too many or too few lines
by you_young @ 2017-08-08 23:15:03
求各位大佬帮忙看看哪错了
```cpp
#include<cstdio>
using namespace std;
int main()
{
int i,j,input,max=0;
int v[26]={0};
while(scanf("%c",&input))
{
v[input-'A']++;
}
for (i=0;i<26;i++)
max=v[i]>max?v[i]:max;
while(max>0)
{
for(j=0;j<26;++j)
{
if(v[j]>=max) printf("*");
else printf(" ");
if(j<25) printf(" ");
}
printf("\n");
--max;
}
printf("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\n");
}
```
by zhangyuxing @ 2017-08-12 20:49:55
为什么TLE
by zhangyuxing @ 2017-08-12 20:58:52
```cpp
while(scanf("%c",&input)) //该循环是死循环
{
v[input-'A']++;
}
```
@[zhangyuxing](/space/show?uid=53264)
你循环结束标志呢?(加入break或换用for)
by you_young @ 2017-08-21 22:51:16