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

Найти, из какой школы (школ) было больше всего участников олимпиады - C++

Восстановить пароль Регистрация
 
Sergunchik228
0 / 0 / 0
Регистрация: 08.01.2015
Сообщений: 15
01.07.2015, 17:04     Найти, из какой школы (школ) было больше всего участников олимпиады #1
Прошу помощи. Болел - ничего не понял. Скоро экзамен, а я ничего не понимаю в С++. Дали примерные задачи, а я не понимаю как решать.
Вот задания: (помогите кто с каким может, только не просто решить, а с объяснениями) Зарание спасибо!
7. На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <Отчество> <номер школы>, где <Фамилия> <Имя> <Отчество> - строки, состоящие не более чем из 20 символов, <номер школы> - не более чем трехзначный номер. Все поля разделены одним пробелом. Пример входной строки:
Андреева Вера Федоровна 57
Требуется написать как можно более эффективную программу, которая будет выводить на экран информацию, из какой школы (школ) было больше всего участников олимпиады. [10]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2015, 17:04     Найти, из какой школы (школ) было больше всего участников олимпиады
Посмотрите здесь:

Найти и напечатать слово, в котором содержится больше всего символов “А” C++
C++ Определить в какой четверти будет больше всего точек из 10 введенных.
Определить, в каком году было больше всего дел, связанных с мошенничеством C++
В файле data.dat хранятся фамилия и годы рождения участников. найти средний возраст участников C++
C++ За какой период месяца выпало больше всего осадков?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
209 / 164 / 44
Регистрация: 17.05.2012
Сообщений: 611
Записей в блоге: 4
01.07.2015, 18:48     Найти, из какой школы (школ) было больше всего участников олимпиады #2
Насчёт эффективности программы ничего не скажу, но она работает.
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
30
31
32
33
34
35
#include <stdio.h>
 
struct Student {
  char f[20],i[20],o[20];
  int num;
};
 
int main(){
  int n;
  do {
    printf("N = ");
    scanf("%i",&n);
  } while (n<=0);
  Student arr[n];
  puts("Введите данные в формате <Фамилия> <Имя> <Отчество> <номер школы>");
  for (int i=0;i<n;i++){
    scanf("%s %s %s %i",arr[i].f,arr[i].i,arr[i].o,&arr[i].num);
  }
  puts("\nВы ввели следующие данные:");
  for (int i=0;i<n;i++){
    printf("%s %s %s %i\n",arr[i].f,arr[i].i,arr[i].o,arr[i].num);
  }
  int kol[1000] = {0};
  for (int i=0;i<n;i++){
    kol[arr[i].num]++;
  }
  int max=kol[0];
  for (int i=1;i<1000;i++){
    if (kol[i]>max) max=kol[i];
  }
  printf("\nИз следующих школ было больше всего участников (%i) олимпиады:\n",max);
  for (int i=0;i<1000;i++){
    if (kol[i]==max) printf("%i\n",i);
  }
}
Liori
 Аватар для Liori
3 / 3 / 1
Регистрация: 30.08.2012
Сообщений: 155
01.07.2015, 22:12     Найти, из какой школы (школ) было больше всего участников олимпиады #3
Тоже не знаю, насколько эффективна
Если есть вопросы - пишите

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
30
31
32
33
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
struct Student // создаём структуру
{
    char surname[80]; // фамилия
    char name[80]; // имя
    char lastName[80]; // отчество
    int schoolNumber; // номер школы
};
int main(int argc, _TCHAR* argv[])
{
    int N, count = 0, maxCount = 0,number;
    cout << "Enter the amount of students: ";
    cin >> N; // кол-во студентов
    cout << "Enter the data about every student: " << endl;
    for (int i = 0; i < N; i++) // вводим данные про студентов
    {
        Student s; // создаем перемнную типа Student
        cin >> s.surname >> s.name >> s.lastName >> s.schoolNumber; // считываем поля структуры
        count++; // прибавляем count на 1
        if (count > maxCount) // если текущий счётчик больше счётчика с максимальным значением
        {
            maxCount = count; // то счётчиком с максимальным значением становится текущий
            number = s.schoolNumber; // запоминаем номер школы
            count = 0; // обнуляем текущий счётчик
        }
    }
    cout << "Result: " << number << endl;  // выводим результат
    system("pause");
    return 0;
}
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
209 / 164 / 44
Регистрация: 17.05.2012
Сообщений: 611
Записей в блоге: 4
02.07.2015, 09:13     Найти, из какой школы (школ) было больше всего участников олимпиады #4
Liori, сожалеем, но ваша программа работает неправильно.
Миниатюры
Найти, из какой школы (школ) было больше всего участников олимпиады   Найти, из какой школы (школ) было больше всего участников олимпиады  
Yandex
Объявления
02.07.2015, 09:13     Найти, из какой школы (школ) было больше всего участников олимпиады
Ответ Создать тему
Опции темы

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