Too many or too few lines

P1598 垂直柱状图

全WA代码就贴一起好了。。。 ```cpp #include<cstdio> #define Max(x,y) ((x)>(y)?(x):(y)) using namespace std; char s[72], mp[300][26]; int book[26], mx; int main() { for(int i=1; i<=4; ++i){ gets(s); for(int j=0; s[j]!='\0';++j) book[s[j]-'A']++; } for(int i=0; i<26; ++i) mx = Max(book[i],mx),mp[0][i] = 'A' + i; for(int i=0; i<26; ++i) for(int j=1; j<=book[i]; ++j) mp[j][i] = '*'; for(int i=mx; i>=0; --i) for(int j=0; j<26; ++j) printf("%c%c",mp[i][j],j==25?'\n':' '); //for(int i=0; i<26;++i) printf("%d ",book[i]); return 0; } ```
by 青衫白叙 @ 2017-09-30 21:52:41


凑个热闹混混眼熟 ```cpp // It is made by XZZ #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define rep(a,b,c) for(int a=b;a<=c;a++) #define drep(a,b,c) for(int a=b;a>=c;a--) int k[28],lmax[28],rmax[28]; int main(){ char ch; while(scanf("%c",&ch)==1)if(ch>='A'&&ch<='Z')++k[ch-'A'+1]; rep(i,1,26)lmax[i]=max(lmax[i-1],k[i]); drep(i,26,1)rmax[i]=max(rmax[i+1],k[i]); drep(i,lmax[26],1){ rep(j,1,26){ if(k[j]>=i)printf("*"); else if(rmax[j+1]>=i)printf(" "); if(rmax[j+1]<i)break; else printf(" "); }puts(""); } 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"); return 0; } ```
by λᴉʍ @ 2017-09-30 22:05:59


@[青衫白叙](/space/show?uid=48991) 您的好像是因为char的初始值为0,然后空值您没输出' ',而是'\0'(�)
by λᴉʍ @ 2017-09-30 22:19:31


这样吗。。。。
by 青衫白叙 @ 2017-09-30 22:20:18


@[XZZ\_\_233](/space/show?uid=23118) 本地打出来可是一点都看不出来啊,,,2333.。。。(其实猜到了)(划掉)。。。
by 青衫白叙 @ 2017-09-30 22:21:31


@[青衫白叙](/space/show?uid=48991) luogu IDE上就是个红点,linux用习惯了,一看就知道是无效字符>\_<
by λᴉʍ @ 2017-09-30 22:24:54


@[XZZ\_\_233](/space/show?uid=23118) 谢谢了。。已经A了
by 青衫白叙 @ 2017-09-30 22:28:39


@[青衫白叙](/space/show?uid=48991) = =
by λᴉʍ @ 2017-09-30 22:28:56


for(int i=0; i<=mx; ++i) for(int j=0; j<26; ++j) if(mp[i][j] == '\0')mp[i][j] = ' ';
by 青衫白叙 @ 2017-09-30 22:28:58


```cpp for(int i=0; i<=mx; ++i) for(int j=0; j<26; ++j) if(mp[i][j] == '\0')mp[i][j] = ' '; ```
by 青衫白叙 @ 2017-09-30 22:29:20


| 下一页