【发布时间】:2021-12-04 21:52:38
【问题描述】:
我创建了一个程序,允许用户输入一年中的降雨量。然后,该程序旨在输出图表以及汇总数据,例如平均、最大、最小和总降雨量。
虽然我基于数据的所有输出都有效,但用于显示带星号输入的数字的实际图表不起作用。
我不太明白我哪里出错了。我已经链接了“*”表的示例输出以及下面的实际代码。任何帮助将非常感激。顺便说一句,我是 C# 的初学者。 Example output
int[] monthrainfall = new int[12];
int i;
double average;
int total = 0;
int max = 0;
int min = Int32.MaxValue;
string bar = "";
//title
Console.Write("\n\nRainfall Data:\n");
Console.Write("**************\n");
//asks user to input names
Console.Write("Enter Rainfall for the year:\n");
for (i = 0; i < 12; i++)
{
Console.Write("Enter rainfall for month {0}: ", i + 1);
monthrainfall[i] = Convert.ToInt32(Console.ReadLine());
}
//outputs rainfall results
Console.WriteLine("\nRainfall Chart");
Console.WriteLine("**************");
//outputs results for each month
for (i = 0; i < 12; i++)
{
Console.Write("Month {0}: ", i + 1);
bar = bar + "*";
Console.WriteLine("{0} ", bar[i]);
}
Console.WriteLine("\nSummary data");
Console.WriteLine("**************");
//calculates the maximum rainfall
for (int index2 = 0; index2 < 12; index2++) //inline variable declaration
{
if (monthrainfall[index2] > max) max = monthrainfall[index2];
}
Console.WriteLine("The maximum rainfall was: " + max);
//calculates the minimum rainfall
for (int index3 = 0; index3 < 12; index3++) //inline variable declaration
{
if (monthrainfall[index3] < min) min = monthrainfall[index3];
}
Console.WriteLine("The minimum rainfall was: " + min);
//calculates average rainfall
for (int index = 0; index < 12; index++)
{
total = total + monthrainfall[index];
}
average = (total) / 12;
Console.WriteLine("The average rainfall was: " + average);
Console.WriteLine("The total rainfall was: " + total);
Console.ReadKey();
【问题讨论】:
-
欢迎来到stackoverflow。由于这似乎是一项家庭作业,我宁愿给你一些提示。因此,在生成降雨图的代码中,您没有使用
monthrainfall[i],您可能还需要一个嵌套循环。 -
System.String类(又名string类)有一个构造函数,它接受一个char和一个整数计数。如果你说var lineOfGraph = new string ('*', 5);,你会得到一个看起来像"*****"的字符串 -
我的程序还是没有运行...
-
由于字符串基本上是
char的数组,因此您在bar[i]中打印的是位于[i]位置的字符,因此只会产生一个星号*。跨度> -
我还是不明白。如何解决我的错误?