Нахождение индекса максимума и минимума в колонке - C#

Узнай цену своей работы

Формулировка задачи:

class FindWeather
    {
        static void Main(string[] args)
        {
            string[] lines = File.ReadAllLines("pogoda.txt");
            int pogoda = 1;
 
            SingleColumn(lines, pogoda);
            Console.WriteLine();
 
            Console.WriteLine("Нажми кнопку чтобы выйти");
            Console.ReadKey();
        }
 
        static void SingleColumn(IEnumerable<string> strs, int kolonka)
        {
 
            var columnQuery =
                from line in strs
                let x = line.Split(',')
                select Convert.ToInt32(x[kolonka]);

            var results = columnQuery.ToList();
 
            double average = results.Average();
            int max = results.Max();
            int min = results.Min();
 
            Console.WriteLine("Погода:\n Средняя в течении года:{0:##.##}\n Максимальное:{1}\n Минимальное:{2}", average, max, min);
        }
    }
Код работает и выводит макс, мин и среднее значение. 1. Как сделать, чтобы показывало в каком конкретно месяце была максимальная/минимальная температура. 2. Как изменить код, чтобы считались не только целые числа, пока могу только с такими работать (но максимальное и минимальное может быть и с запятой) 3. Создать поиск по температуре (вводить вручную температуру "от 10 градусов до 20", и показывалось какой/какие месяцы имеют данную температуру. Текстовый файл содержит данные такого вида: 1, 0 2, 3 3, 7 4, 10 5, 14 6, 17 7, 20 8, 22 9, 14 10, 5 11, -2 12, -10

Решение задачи: «Нахождение индекса максимума и минимума в колонке»

textual
Листинг программы
        static void SingleColumn(IEnumerable<string> strs, int kolonka)
        {
            var columnQuery =
                from line in strs
 
                let x = line.Split(':')  /*   выберем другой разделитель  */
                //let x = line.Split(',')
 
                select Convert.ToDouble(x[kolonka]);
                //select Convert.ToInt32(x[kolonka]);
 
            var results = columnQuery.ToList();
            double average = results.Average();
 
            String max = results.Max().ToString();
            String min = results.Min().ToString();
            //int max = results.Max();
            //int min = results.Min();
 
            Console.WriteLine("Погода:\n Средняя в течении года:{0}\n Максимальное:{1}\n Минимальное:{2}", average, max, min);
            //Console.WriteLine("Погода:\n Средняя в течении года:{0:##.##}\n Максимальное:{1}\n Минимальное:{2}", average, max, min);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы