Чтение и запись текстовых файлов - C#
Формулировка задачи:
Дан текстовый файл (in.txt) содержащий список учащихся и их оценки по трем
предметам: математике, физике, информатике.
Формат файла: сначала количество учащихся n, затем n строк, каждая из которых
содержит фамилию, имя и три числа. Данные в строке разделены одним пробелом.
Оценки принимают значение от 1 до 5.
Пример входного файла:
4
Ivanov Vasiliy 4 3 4
Petrov Sergey 5 3 5
Konstantinov Nikolay 4 4 5
Kuznetsov Ivan 5 5 5
Выведите три действительных числа: средний балл всех учащихся по математике,
по физике, по информатике. Определите учащихся с наилучшей успеваемостью, то есть с
максимальным средним баллом по трем предметам. Выведите в файл out.txt одного или
нескольких учащихся, имеющих максимальный средний балл.
namespace _1 { class Info { string[] all_text_arr; public double Avr_math { get; private set; } public double Avr_ph { get; private set; } public double Avr_inf { get; private set; } string[] lastName; string[] name; int[] math; int[] ph; int[] inf; double[] avr; //средний бал public Info(string path) { all_text_arr = File.ReadAllLines(path).Skip(1).ToArray(); // заносим в массив все строки кроме первой lastName = new string[all_text_arr.Length]; name = new string[all_text_arr.Length]; math = new int[all_text_arr.Length]; ph = new int[all_text_arr.Length]; inf = new int[all_text_arr.Length]; avr = new double[all_text_arr.Length]; for (int i = 0; i < all_text_arr.Length; i++) { lastName[i] = all_text_arr[i].Split(' ')[0]; name[i] = all_text_arr[i].Split(' ')[1]; math[i] = int.Parse(all_text_arr[i].Split(' ')[2]); ph[i] = int.Parse(all_text_arr[i].Split(' ')[3]); inf[i] = int.Parse(all_text_arr[i].Split(' ')[4]); avr[i] = (math[i] + ph[i] + inf[i]) / 3; } Avr_math = math.Average(); Avr_ph = ph.Average(); Avr_inf = inf.Average(); } public string[] Max() { double avr_max = avr.Max(); var list = new List<string>(); for (int i = 0; i < all_text_arr.Length; i++) { if (avr[i] == avr.Max()) list.Add(lastName[i] + " " + name[i] + " средний балл: " + avr[i]); } return list.ToArray(); } } Main(string[] args) { Info inf = new Info("in.txt"); Console.WriteLine("Средний балл по математике: {0}", inf.Avr_math); Console.WriteLine("Средний балл по физике: {0}", inf.Avr_ph); Console.WriteLine("Средний балл по информатике: {0}", inf.Avr_inf); Console.WriteLine("C наилучшей успеваемостью:"); foreach (var item in inf.Max()) { Console.WriteLine(item); } File.WriteAllLines("out.txt", inf.Max()); Console.ReadLine(); }
В 57 строке ошибка: метод должен иметь тип возвращаемого значения.... Никак не могу сообразить. Подскажите, пожалуйста
Решение задачи: «Чтение и запись текстовых файлов»
textual
Листинг программы
static void Main(string[] args) { //... }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д