求助!codeblocks编译案例过了,但是全wa了 QAQ

P1598 垂直柱状图

在任何一行末尾不要打印不需要的多余空格。
by TensorFlow_js @ 2022-08-11 17:04:41


`a` 中元素的初值是 0 而非空格,但两者在 Windows 控制台上显示为同一个字符,没法区分。这段程序对样例的输出在正常的终端软件上会显示为 ```plain * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 ```
by ud2_ @ 2022-08-11 17:14:20


@[Suruka](/user/321566) 好像还是不行 QAQ ```cpp #include <iostream> #include <cstring> using namespace std; const int N = 110; string s; char a[N][26]; int b[N]; int main() { int max = -1; for(int i = 0; i < 4; i ++ ) { getline(cin, s); for(int j = 0; j < s.length(); j ++ ) { if(s[j] <= 'Z' && s[j] >= 'A') { int num = s[j] - 'A'; b[num] ++; if(b[num] > max) { max = b[num]; } } } } for(int j = 0; j < 26; j ++ ) { for(int i = max - 1; i >= 0; i -- ) { if(b[j] > 0) { a[i][j] = '*'; b[j]--; } } } for(int i = 0; i < max; i ++ ) { for(int j = 0; j < 26; j ++ ) { cout << a[i][j]; if(j <25) cout << " "; } //加了特判 cout << endl; } for(int i = 0; i < 26; i ++ ) { char ch = 'A' + i; cout << ch; if(i <25) cout << " "; } //加了特判 } ```
by NoneVector @ 2022-08-11 17:14:48


@[wtmsw2x](/user/646312) `if(j <25) cout << " ";` Emm 这不还输了
by TensorFlow_js @ 2022-08-11 17:19:43


@[wtmsw2x](/user/646312) 而且像 ud2_ 说的那样,建议把 `a` 的初值赋为 `' '`
by TensorFlow_js @ 2022-08-11 17:20:32


@[ud2_](/user/206953) orz,原来还会这样0.0,谢谢大佬
by NoneVector @ 2022-08-11 17:26:34


@[Suruka](/user/321566) 还是不行~~应该是我不知道哪里搞错了~~,我试了几次发现赋值的话就是不知道哪里还有问题,但是只是用数组来判定 * 的位子的话就能ac了。还是谢谢帮助!
by NoneVector @ 2022-08-11 17:39:19


@[wtmsw2x](/user/646312) 这是我的代码,希望对你有帮助。 ```cpp #include <bits/stdc++.h> using namespace std; int main() { vector<int> cnt(26, 0); int height = 0; for (int i = 0; i < 4; i++) { string s; getline(cin, s); for (int j = 0; j < s.size(); j++) if (isalpha(s[j])) height = max(height, ++cnt[s[j] - 'A']); } for (int i = height; i >= 1; i--) { for (int j = 0; j < 26; j++) { if (cnt[j] >= i) cout << "* "; else cout << " "; } cout << endl; } for (int i = 0; i < 26; i++) cout << char(i + 'A') << " "; return 0; } ```
by __InfiniteWorld__ @ 2022-08-11 18:21:34


@[QingFy](/user/595521) 确实可以,感谢
by NoneVector @ 2022-08-12 13:21:51


我主要想知道如果要用char存 * 该怎么办,望告知 orz
by NoneVector @ 2022-08-12 13:23:14


|