c# - For 循环在 C# 控制台中制作条形图
问题描述
我正在尝试制作一个接受两个值的函数:数组scores[]和 int elmts。该函数的目标是为score[]数组中的每个值打印一行 * 星。例如,如果我们有
int[] scores = {5, 1, 10};
elmts = 3;
我希望它打印到控制台:
* * * * *
*
* * * * * * * * * *
我尝试使用下面的两个嵌套 for 循环来实现这一点:
for(int i = 0; i < elmts; i++)
{
for(int k = 0; k < scores[k]; k++)
{
Write(" *");
}
WriteLine();
}
但输出是:
*
*
*
谁能告诉我这里哪里出错了?
解决方案
我猜你的数组中的索引器错误,具体来说scores[k]
应该是scores[i]
var scores = new[] {4, 3, 4, 6, 4};
for (int i = 0; i < scores.Length; i++)
{
for (int k = 0; k < scores[i]; k++)
Console.Write(" *");
Console.WriteLine();
}
你可以这样做的另一种方法是
for (int i = 0; i < scores.Length; i++)
Console.WriteLine(string.Concat(Enumerable.Repeat(" *", scores[i])));
或者
foreach (var score in scores)
Console.WriteLine(string.Concat(Enumerable.Repeat(" *", score)));
或者
var graph = scores.Select(x => string.Concat(Enumerable.Repeat(" *", x)));
Console.WriteLine(string.Join(Environment.NewLine, graph));
输出
* * * *
* * *
* * * *
* * * * * *
* * * *
推荐阅读
- javascript - 如何查询 Firestore 子集合的文档数据?
- php - 在 PHP 中使用字符串对关联数组进行排序
- javascript - 如何制作缩小内容框的折叠边
- javascript - 如何在以太坊中执行简单的 ERC20 交易 - 无效的 JSON RPC 响应
- react-native - 如何在一个查询中使用多个片段(来自不同类型)?
- html - HTML 标准是否说明按 Enter 提交表单?
- django - 如何将 nulls_last 排序应用于 Django 中的额外选择字段?
- azure - 搜索栏自定义(Bing 自定义搜索通过 Raw JS 连接到 Wordpress 网站)
- javascript - 创建嵌套多步表单
- javascript - 如何使用 GraphQL-JS 定义日期标量?