检查我的代码并告诉我代码中的错误。 实际上,我试图用C++打印直方图。 那里一切正常,但有一个问题,即在星星的最后一列中,该值与第 3 列相同。 表示如果我给第三个和第四个条目两个不同的输入值,它们的输出是相同的,但在两列中,我想在自己的列中打印自己的值,这是代码。
#include<iostream>
using namespace std;
int f[4];
int main()
{
int a, b, c, d, i;
cin >> f[0] >> f[1] >> f[2]>>f[3];
int m = max(max(max(f[0],f[1]),f[2]),f[4]);
for(int i=m;i>=1;i--)
{
for(int j=0;j<4;j++)
if (f[j]<i) cout <<' ';
else cout <<'*';
cout<<endl;
}
}
如果我给出这些输入,这是输出。
2,3,4,5
输出:
**
***
****
****
查找最大元素时,您正在查看 f[4]
,它超出了数组的边界,从而导致未定义的行为。
你的意思是使用f[3]
.