С++ для 8 класса, урок 10 (Строки и структуры)

preview_player
Показать описание
Видеозапись факультатива для школы 1514 города Москвы.

Темы:
1) Кодирование символов.
2) 24:23 Что такое "кракозябры"?
3) 29:54 Фишка кодировки Unicode UTF-8.
4) 40:09 Тип однобайтных символов char.
5) 42:57 Си-строки с завершающим \0.
6) 52:49 C++ строки std::string. Операции со строками.
7) 58:30 Пользовательские типы struct.
8) 1:06:50 Задача 1. Простое использование string.
9) 1:53:17 Задача 2. Массивы строк.

63900240 9020000598 (карта СБ).
Рекомендации по теме
Комментарии
Автор

По поводу задания - есть более красивое решение, чем просто создание фиксированного массива и инкрементирование индексов, которые соответствуют возрасту?

bohdankladochnyi
Автор

мне показалось или студенты-инопланетяне на лекции натурально плавают в каком-то аквариуме и что-то иногда комментируют?

uhtbiqy
Автор

#include <iostream>
#include <string>

struct Person
{
std::string name ;
int age ;
};

int main()
{
int N;
std::cin >> N;
Person man[N];
/* ввод структуры man */
for(int i = 0; i < N; i++)
{
std::cin >> man[i].name >> man[i].age ;
}
/* посчет одинаковых возрастов */
int count[N] ;
for(int i = 0; i < N; i++)
count[i] = 0;
for(int i = 0; i < N; i++)
{
for(int j =0; j < i; j++)
{
if(man[j].age == man[i].age)
{
count[j]++;
}
}
}
/* поиск больше всех повторяющихся возрастов
*/
int age = 0, tmp = -1;
for(int i = 0; i < N; i++)
{
if( tmp < count[i])
{
tmp = count[i];
age = man[i].age;
}
}
/* вывод имен первых повторяющихся больше всех одинаковых возрастов*/
for(int i = 0; i < N; i++)
{
if( age == man[i].age)
{
std::cout << man[i].name << std::endl;
}
}
}

hicdquq