Массивы в C #, получающие пользовательский ввод и передающие другому классу - PullRequest
0 голосов
/ 03 ноября 2010

Я работаю над проектом, да, это для школы. Мне трудно понять, как передать пользовательский ввод и сохранить его в массиве. Проект состоит в том, чтобы получить высокие и низкие температуры в течение семи дней и сохранить их в разных массивах, а затем вычислить средний и т. Д. Как мне собрать вход и сохранить его в массиве другого класса? Я думаю, что почти у меня есть, но не уверен, где я иду не так

Пока у меня есть это, но появляется ошибка:

Невозможно неявно преобразовать тип 'int' в 'int []'

namespace Project_Console_3
{
    class Program
    {
        static void Main(string[] args)
        {
            WeeklyTemperature Temp = new WeeklyTemperature();

            int Count = 0;
            while (Count < 7)
            {
                Console.WriteLine("Enter The High Temperature for Day {0}", Count+1); 
                Temp.HTemp1 =Console.ReadLine();      // save the number as a string number
                Temp.HTemp = Convert.ToInt32(Temp.HTemp1); // change the string number to a integer as HTemp
                Console.WriteLine("--------------------------------");//Draws a line

                Console.WriteLine("Enter The Low Temperature for Day {0}", Count+1); 
                Temp.LTemp1 =Console.ReadLine();      // save the number as a string number
                Temp.LTemp = Convert.ToInt32(Temp.LTemp1);
                Console.WriteLine("--------------------------------");//Draws a line
                Count = Count + 1;
                Console.Clear();
            }       
        }
    }
}

WeeklyTemperature.cs

namespace Project_Console_3
{
    class WeeklyTemperature
    {
        public int[] HTemp = new int[7];
        public int[] LTemp = new int[7];
        public string HTemp1;
        public string LTemp1;
    }
}

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

Похоже, все, что вам нужно сделать, это изменить эту строку:

Temp.HTemp = Convert.ToInt32(Temp.HTemp1);

на

Temp.HTemp[Count] = Convert.ToInt32(Temp.HTemp1)
0 голосов
/ 12 июля 2016

Ваше сообщение об ошибке говорит вам, что у вас есть несоответствие в назначении переменных. в этой строке:

Temp.HTemp = Convert.ToInt32(Temp.HTemp1); 

Возвращаемое значение имеет тип int, но переменная Temp.HTemp имеет тип int[], который представляет собой массив, содержащий индивидуальное целое число. Чтобы сохранить значения в массиве, компилятор должен знать, в какую позицию он должен поместить значение.

Индексирование массива работает с операторами []:

int pos = 0;
Temp.HTemp[pos] = 5;

сохранит 5 на первой позиции.

Поскольку в вашем цикле while есть подсчитываемая переменная, вы можете использовать ее для индексации позиции, в которой должны храниться числа, как уже показал Джим Росс в своем ответе.

Подробнее об индексировании вы можете найти здесь , а учебник - здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...