绘制垂直直方图C#
问题描述:
我想计算在控制台的垂直直方图从一个整数数组。 阵列获取此窦公式填充,之后两个for循环应该做的魔力:绘制垂直直方图C#
for (int i = 0; i < 30; i++) //fill array
f[i] = (int)(10 * Math.Sin(2 * Math.PI/30 * i) + 15);
//draw histogram:
int maxValue = f.Max();
for (int i = 0; i <= maxValue; i++)
{
for (int j = 0; j < f.Length; j++)
{
if (f[j] >= maxValue)
Console.Write("*");
else
Console.Write(" ");
}
maxValue--;
Console.Write("\n");
}
这里是我的代码输出: my result
但结果应该是这样的: right solution
它的部分工作,直到恒星和空间中的13号线...
,我可以从我的结果可以看出:它做窝K,但不知何故外循环只想运行13次,然后决定停止,但我不知道为什么。这也是我问这个问题的原因。
在此先感谢!
答
更改填充阵列部分:
f[i] = (int)(10 * Math.Sin(2 * Math.PI/30 * i) + 40);
答
你在水平和垂直尺寸,这不可能是正确使用maxValue
。外部循环的
变化退出条件。取而代之的是:
for (int i = 0; i <= maxValue; i++)
...这样写:
for (int i = 0; i <= f.Length; i++)
......得到这个:
****
******
********
********
**********
************
************
**************
**************
****************
****************
****************
***************** *
***************** *
****************** **
******************* ***
******************* ***
******************** ****
********************* *****
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
+0
现在的作品,你的帮助表示赞赏! – user2448539
+0
在这种情况下,随时接受了答案。 :-) –
这就是正确的,太感谢您 – user2448539
也是一个正确的答案,谢谢你真是太棒了! – user2448539