Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
greenkirillv
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 12
#1

Считывание из файла (узнать максимальный балл за три теста и вывести фамилию и имя...) - C++

04.12.2012, 18:49. Просмотров 388. Ответов 5
Метки нет (Все метки)

Здравствуйте, я очень-очень большой нуб в C++, но так случилось, что сейчас его азы, мне очень бы помогли. И так, есть файл "input.txt":
Код
2
petya petrov 12 23 31
vanya ivanov 10 10 10
Первая строка, сколько будет строк в файле, остальные: фамилия, имя, балы за 3 теста. Нужно узнать максимальный балл за три теста и вывести фамилию и имя, у того, у кого он максимален, если таких несколько, вывести всех. Собственно задача элементарная, но у меня трабла именно с считыванием из файла, программа не хочет запускаться и все, в смысле компилируется, да, но когда запускается .exe файл, просто вырубает программу и все. Что делать не знаю...
Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <fstream>
#include <string>
using namespace std;
 
int main() {
        ifstream in("input.txt");
        int n, maxx, lsh;
        in >> n;
        int c1[n], c2[n], c3[n], max[n];
        string fa[n][2];
        for(int i = 1; i <= n; i++) {
                in >> fa[i][1];
                in >> fa[i][2];
                in >> c1[i];
                in >> c2[i];
                in >> c3[i];
              max[i] = c1[i] + c2[i] + c3[i];
              if (max[i] > maxx) maxx = max[i];
              }
        ofstream out("output.txt");
        for(int i = 1; i <= n; i++) {
                if(max[i] == maxx) {out << fa[i][1] + " " + fa[i][2] << endl;}
                }
              system("PAUSE");
}
И еще вопрос, есть ли функция, преобразующая string переменную содержащую только символы цифр, в int или float? И наоборот? Я находил страшные самописные функции, но такое не для меня пока, есть ли именно встроенная функция, в какую-нибудь стандартную библиотеку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание из файла (узнать максимальный балл за три теста и вывести фамилию и имя...) (C++):

Запросить у пользователя имя, фамилию, а затем вывести строку вида "фамилия, имя" - C++
С. Прата, &quot;Язык программирования С++&quot;, 4 глава, задача 3. Напишите программу, которая запрашивает у пользователя имя, фамилию, а затем...

Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату - C++
Дело обстоит так: Прочитав и, как я думал, поняв 3ю главу книги &quot;Как программировать на с++&quot; Дейтелов пришло время задачек. Немного...

Вывести на экран имя и фамилию 10 раз - C++
здравствуйте, дорогие программисты!помогите пожалуйста решить задачу...вот условие: Написать программу, которая выводит на экран ваше имя и...

Структуры и файлы (посчитать средний балл каждого студента и вывести фамилию студента с наибольшим баллом) - C++
У меня есть структура и файл, в котором находятся фамилии и оценки учащихся, как мне посчитать средний балл каждого студента и вывести...

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы - C++
Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы. _______ Как это задание...

Вывести на экран фамилию, имя и адрес учеников, у которых нет домашнего телефона - C++
Известны данные о 25-ти учениках класса: фамилия, имя, отчество, адрес и домашний телефон, если он есть. Вывести на экран фамилию, имя и...

5
David Sylva
1290 / 952 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
04.12.2012, 18:57 #2
Считывать лучше в структуру. Так к сведению массив, начинается с 0 элемента, а нес первого.
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 867
Записей в блоге: 1
Завершенные тесты: 1
04.12.2012, 19:00 #3
Нумерация массивов начинается с 0.

Значит в циклах нужно
C++
1
for(int i = 0,...
fa[i][2]; - выход за пределы массива по той же причине
0
greenkirillv
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 12
04.12.2012, 19:01  [ТС] #4
Цитата Сообщение от David Sylva Посмотреть сообщение
Считывать лучше в структуру. Так к сведению массив, начинается с 0 элемента, а нес первого.
В смысле в структуру?
0
David Sylva
1290 / 952 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
04.12.2012, 19:03 #5
Почитай
http://ru.wikipedia.org/wiki/%D0%A1%...BD%D0%B8%D0%B5)
0
greenkirillv
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 12
04.12.2012, 19:06  [ТС] #6
Спасибо большое за ответы, премного благодарен, все работает!
0
04.12.2012, 19:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 19:06
Привет! Вот еще темы с ответами:

Рассчитать средний рост группы и вывести имя, фамилию студентов выше среднего роста - C++
a)Имеется группа студентов из 10 человек. Составить программу для ввода имени, фамилии, года рождения, роста, пола каждого студента....

Подсчитать и вывести фамилию ученика, имеющего максимальный средний балл - PascalABC.NET
С клавиатуры вводится число N (N&lt;=10). Далее с клавиатуры вводятся N-строк, содержащих фамилию ученика и 3 оценки по информатике....

Для студентов заданной группы, имеющие средний балл, больший 4.5, вывести фамилию и средний балл - Pascal
Для студентов заданной группы,имеющие средний балл,больший 4.5,вывести фамилию,имя,отчество и средний балл. ФИО|год...

Запросить фамилию, имя и отчество пользователя, и вывести его фамилию и инициалы - Delphi
Вот задание:Написать программу, которая запрашивает фамилию, имя и отчество, а выводит фамилию и инициалы!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru