private int[] grades;
public void OutputBarChart()
{
Console.WriteLine("Grade distribution:");
// stores frequency of grades in each range of 10 grades
var frequency = new int[11];
// for each grade, increment the appropriate frequency
foreach (var grade in grades)
{
++frequency[grade / 10];
// 这里为什么要除以10?然后是如何计算得出来的数列frequency
}
// for each grade frequency, display bar in chart
for (var count = 0; count < frequency.Length; ++count)
{
// output bar label ("00-09: ", ..., "90-99: ", "100: ")
if (count == 10)
{
Console.Write(" 100: ");
}
else
{
Console.Write($"{count * 10:D2}-{count * 10 + 9:D2}: ");
}
// display bar of asterisks
for (var stars = 0; stars < frequency[count]; ++stars)
{
Console.Write("*");
}
Console.WriteLine(); // start a new line of output
}
}
C# foreach (var grade in grades) {++frequency[grade / 10]; } 请详细点 谢谢
答案:2 悬赏:40 手机版
解决时间 2021-02-20 06:34
- 提问者网友:放下
- 2021-02-19 05:45
最佳答案
- 五星知识达人网友:几近狂妄
- 2021-02-19 06:27
从代码上来看,是统计 grades 这个数组在 0-100 上的分布,每隔 10 为一个间隔。
frequency 这个数组有 11 个元素,分别代表 grades 数组中的元素在 00-09、10-19、20-29、30-39、40-49、50-59、60-69、70-79、80-89、90-99、100 这些范围内出现的次数。
grade / 10,两个 int 相整除,得到的还是一个 int,比如 49 / 100 = 4,而 frequency[4] 恰好就代表 40-49 这个范围,++ 就不用解释了吧?
frequency 这个数组有 11 个元素,分别代表 grades 数组中的元素在 00-09、10-19、20-29、30-39、40-49、50-59、60-69、70-79、80-89、90-99、100 这些范围内出现的次数。
grade / 10,两个 int 相整除,得到的还是一个 int,比如 49 / 100 = 4,而 frequency[4] 恰好就代表 40-49 这个范围,++ 就不用解释了吧?
全部回答
- 1楼网友:平生事
- 2021-02-19 07:57
搜一下:C# foreach (var grade in grades) {++frequency[grade / 10]; } 请详细点 谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯