Форум программистов, компьютерный форум CyberForum.ru

Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку - C++

Восстановить пароль Регистрация
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
17.11.2013, 12:39     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #1
Здравствуйте!
Мне нужно найти максимальную оценку студента и вывести его ID потом фамилию и макс оценку
Вот образец

INPUT:
3
1 Ivano 51
2 Zuckerberg 99.1
3 Mendelson 99.0

OUTPUT:
2 Zuckerberg 99.1

Вот мой код происходит сбой при вводе Помогите
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
26
27
28
29
#include <iostream>
using namespace std;
struct Student
{
    int ID;
    char *surname;
    double grade;
};
 
int main ()
{
    Student a[100];
    double max=0;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].ID;
        cin>>a[i].surname;
        cin>>a[i].grade;
        if(a[i].grade>max)
        {
            max=a[i].grade;
        }
        cout<<a[i].ID<<" "<<a[i].surname<<" "<<max;
    }
    return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 12:39     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку
Посмотрите здесь:

Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике. C++
Структуры и файлы (посчитать средний балл каждого студента и вывести фамилию студента с наибольшим баллом) C++
C++ Найти среднюю оценку каждого студента и выбрать человека, имеющего максимальный средний балл
C++ Найти сумму и количество цифр числа, а также максимальную и минимальную его цифры
Определить фамилию одного из учеников, имеющих максимальную сумму оценок C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 12:52     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #2
Цитата Сообщение от AlisherIITU Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
[for(int i=0;i<n;i++)
  {
  cin>>a[i].ID;
  cin>>a[i].surname;
  cin>>a[i].grade;
  if(a[i].grade>max)
  {
      max=a[i].grade;
  }
  cout<<a[i].ID<<" "<<a[i].surname<<" "<<max;
А какого ответ запихнут в цикл ввода?
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
17.11.2013, 12:54  [ТС]     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #3
Цитата Сообщение от taras atavin Посмотреть сообщение
А какого ответ запихнут в цикл ввода?
ну он в цикле должен быть же, тогда a[i] не будет работать же
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 13:01     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #4
Цитата Сообщение от AlisherIITU Посмотреть сообщение
ну он в цикле должен быть же, тогда a[i] не будет работать же
А зачем там a[i]? По смыслу это не текущий, а искомый, значит [m], а не [i]. Кроме того, даже если надо вывести в цикле, ввод к этому моменту должен быть завершён, если только это не вывод подсказки ко вводу, поэтому остальной вывод в цикле делается в отдельном цикле. Но здесь надо вывести один раз.
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
17.11.2013, 13:07  [ТС]     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #5
Цитата Сообщение от taras atavin Посмотреть сообщение
А зачем там a[i]? По смыслу это не текущий, а искомый, значит [m], а не [i]. Кроме того, даже если надо вывести в цикле, ввод к этому моменту должен быть завершён, если только это не вывод подсказки ко вводу, поэтому остальной вывод в цикле делается в отдельном цикле. Но здесь надо вывести один раз.
К сожалению я вас не понел, и что значит [m], а не [i]?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 13:12     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #6
То и значит.
C++
1
a[m].ID
.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Student a[100];
    double max=0;
    int m;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].ID;
        cin>>a[i].surname;
        cin>>a[i].grade;
        if(a[i].grade>max)
        {
            max=a[i].grade;
            m=i;
        }
      }
    cout<<a[m].ID<<" "<<a[m].surname<<" "<<max;
    return 0;
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
17.11.2013, 13:18  [ТС]     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #7
Спасибо теперь все понятно!
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.11.2013, 13:49     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #8
А можно даже не хранить сам максимум:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Student a[100];
    int m;
    int n;
    cin>>n;
    for(int i=0, m=0; i<n; ++i)
    {
        cin>>a[i].ID;
        cin>>a[i].surname;
        cin>>a[i].grade;
        if(a[i].grade>a[m].grade)
        {
            m=i;
        }
      }
    cout<<a[m].ID<<" "<<a[m].surname<<" "<<a[m].grade;
    return 0;
Добавлено через 1 минуту
Да, кстати, здесь дыра переполнения массива, память надо или выделять динамически, или работать только с буфером, а не массивом, или n должно быть константой.

Добавлено через 51 секунду
Цитата Сообщение от AlisherIITU Посмотреть сообщение
struct Student
{
* * int ID;
* * char *surname;
* * double grade;
};
И это вводится?
C++
1
std::string surname;
.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 14:02     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку
Еще ссылки по теме:

Считать из бинарного файла в массив структур фамилию, имя, оценку по математике, оценку по информатике C++
Вывести оценку прописью C++
C++ Найти максимальную площадь треугольника по двум его сторонам

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

Или воспользуйтесь поиском по форуму:
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
17.11.2013, 14:02  [ТС]     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку #9
Да я с этим разобрался))
Yandex
Объявления
17.11.2013, 14:02     Найти максимальную оценку студента и вывести его ID потом фамилию и максимальную оценку
Ответ Создать тему
Опции темы

Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru