求助大佬,全错了,烦,但是我觉得思维准确无误,代码里有注释

P1598 垂直柱状图

代码没写完,但运行发现跟预想的不一样
by qew12312 @ 2023-01-05 09:46:37


```cpp #include<iostream> using namespace std; int t[30]; int main() { string s1,s2,s3,s4; getline(cin,s1); getline(cin,s2); getline(cin,s3); getline(cin,s4); for (int i = 0;i < s1.length();i++) if ('A' <= s1[i] && s1[i] <= 'Z') t[s1[i] - 'A' + 1]++; for (int i = 0;i < s2.length();i++) if ('A' <= s2[i] && s2[i] <= 'Z') t[s2[i] - 'A' + 1]++; for (int i = 0;i < s3.length();i++) if ('A' <= s3[i] && s3[i] <= 'Z') t[s3[i] - 'A' + 1]++; for (int i = 0;i < s4.length();i++) if ('A' <= s4[i] && s4[i] <= 'Z') t[s4[i] - 'A' + 1]++; int maxn = 0; for (int i = 1;i <= 26;i++) maxn = max(maxn,t[i]); for (int i = maxn;i >= 1;i--) { for (int j = 1;j <= 26;j++) { bool flag = true; for (int k = j;k <= 26;k++) if (t[k] >= i) flag = false; if (flag) break; else if (!flag && t[j] >= i) cout << "*"; else cout << " "; if (j < 26) cout << " "; } cout << endl; } for (int i = 1;i <= 26;i++) { cout << char(i - 1 + 'A'); if (i < 26) cout << " "; } return 0; } ``` 你看下我的输出部分
by codejiahui @ 2023-01-05 10:35:29


@[codejiahui](/user/512407) 输出那三重循环的第三个循环看不懂,我只用了两个循环
by qew12312 @ 2023-01-05 21:40:41


```cpp for(i=1;i<=er;i++){ for(rt=0;rt<26;rt++){cout<<we[i][rt];if(rt<26) cout<<" ";}cout<<endl;} for(i=1;i<=26;i++) {cout<<char(i-1+'A');if(i<26) cout<<" ";} ``` 我将输出部分改了,然后通过了,但我的二位数组赋值没有错,总之,大佬谢谢了,大佬我觉得你用bool第三循环多余了
by qew12312 @ 2023-01-05 21:59:45


哦,这个代码只是我一年前写的,会有多余部分
by codejiahui @ 2023-01-06 10:43:47


|