求各位大佬帮忙看看哪错了

P1598 垂直柱状图

之前写的略乱。。。整理了一下 ```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


|