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

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

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

Дан массив студентов ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран результирующую таблицу: регион, количество студентов из этого региона - C++

03.06.2013, 17:22. Просмотров 784. Ответов 2
Метки нет (Все метки)

"Дан массив студентов некоторого ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран результирующую таблицу: регион, количество студентов из этого региона. Отсортировать данные по названию региона." Собственно, не могу разработать алгоритм подсчёта этих студентов.

Добавлено через 2 часа 31 минуту
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <string.h>
using namespace std;
struct Student
{
    char fio[20];
    char region[20];
    char fac[20];
    int year;
};
struct Stado
{
    char region[20];
    int kol;
};
void Input(int n, Student mas1[])
{
    for (int i=0; i<n; i++)
    {
        cout<<"Введите инициалы, регион, факультет и год: ";
        cin>>mas1[i].fio>>mas1[i].region>>mas1[i].fac>>mas1[i].year;
        //cin.get();
    }
}
void main()
{
    setlocale(LC_ALL,"Russian");
    const int N=3;
    Student hell[N];
    Input(N,hell);
    Stado masa[N];
    Stado first[N];
    int koll;
    for(int i=0; i<N; i++)
    {
        strcpy(masa[i].region,hell[i].region);
        masa[i].kol=0;
 
        for(int j=i; j<N; j++)
        {
            if (strcmp(masa[j].region,masa[j++].region)==0)
                masa[j].kol += 1;
        }
    }
    cout<<"Количество студентов"<<endl;
    for(int i=0; i<N; i++)
    {
        cout<<masa[i].region<<"  "<<masa[i].kol<<endl;
    }
    cout<<first[N].region<<' '<<first[N].kol;
    cin.get();
    cin.get();
}
Что-то тут пришло в голову, но пока объявлял структуры и функцию ввода, забыл, что я хотел сделать. В итоге, на выходе получил какую-то ерунду...

Добавлено через 17 часов 55 минут
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <string.h>
using namespace std;
struct BIO
{
    char FIO[15];
    int year;
    char region[15];
    char fac[15];
};
struct Student
{
    char region [15];
    int kol;
};
//Ввод
void Input (int n, BIO arr[])
{
    for (int i=0; i<n; i++)
    {
        cout<<"Print FIO, year, region, fac: ";
        cin>>arr[i].FIO>>arr[i].year>>arr[i].region>>arr[i].fac;
        cin.get();
    }
}
//Выполнение первого задания
void Output (int n, BIO arr[]) 
{
    for (int i=0; i<n; i++)
    {
        cout<<arr[i].FIO<<": "<<arr[i].year<<", "<<arr[i].region<<", "<<arr[i].fac<<endl;
    }
    cin.get();
}   
void main()
{
    const int N=3;
    char tmp[15];
    BIO BIOArr[N];
    Student StudArr[N]; 
    Input(N, BIOArr);
    Output(N, BIOArr);
    for (int i=0; i<N; i++)
    {
        strcpy(StudArr[i].region,BIOArr[i].region);
        StudArr[i].kol=1;
    }
    for (int i=0; i<N-1; i++)
    {
        for (int j=0; j<N-1; j++)
        {
            if (strcmp(StudArr[j+1].region,StudArr[j].region)<0)
            {
                strcpy(tmp,StudArr[j+1].region);
                strcpy(StudArr[j+1].region,StudArr[j].region);
                strcpy(StudArr[j].region,tmp);
            }
            if (strcmp(StudArr[j+1].region,StudArr[j].region)==0) 
                StudArr[j].kol+=1;
        }
    }
    cout<<"Kol Student: "<<endl;
    for (int i=0; i<N; i++)
        cout<<StudArr[i].region<<" = "<<StudArr[i].kol<<endl;
    cin.get();
}
И всё равно. Не знаю, как вычёркивать уже подсчитанный регион
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 17:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан массив студентов ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран результирующую таблицу: регион, количество студентов из этого региона (C++):

Программа выводит неверный ответ (дан массив структур, содержащий сведения об успеваемости студентов - вывести список неуспевающих студентов) - C++
Задача: Дан массив структур, содержащий сведения об успеваемости по информатике группы из 25 студентов. Структура содержит следующие...

Отсортировать массив по сумме баллов студентов и вывести на экран вместе с их фамилиями - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Вывести на экран ФИО тех студентов две оценки у которых 3 - Free Pascal
Составить список из 15 студентов, для каждого указать ФИО и оценки с 4 экзаменов. Составить программу , которая будет вводить данные для...

Вывести на экран фамилию самого старшего студента и средний возраст для всех студентов - Turbo Pascal
Создать файл, элементами которого являются сведения о студентах: фамилия, возраст, место проживания. Вывести на экран фамилию самого...

Вывести на экран ФИО студентов, средний балл которых выше среднего балла всей группы - Turbo Pascal
дана группа студентов которая сформирована ФИО. номер группы и 5 оценок. вывести на экран ФИО. студентов средний балл, которых выше...

Для каждого из N студентов группы известны ФИО и оценки (в баллах) по пяти дисциплинам. Вывести на экран фамилию и имя т - C#
Для каждого из N студентов группы известны ФИО и оценки (в баллах) по пяти дисциплинам. Вывести на экран фамилию и имя тех из них, у...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
03.06.2013, 17:57 #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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <string.h>
using namespace std;
struct BIO
{
    char FIO[15];
    int year;
    char region[15];
    char fac[15];
};
struct Student
{
    char region [15];
    int kol;
};
//Ввод
void Input (int n, BIO arr[])
{
    for (int i=0; i<n; i++)
    {
        cout<<"Print FIO, year, region, fac: ";
        cin>>arr[i].FIO>>arr[i].year>>arr[i].region>>arr[i].fac;
        cin.get();
    }
}
//Выполнение первого задания
void Output (int n, BIO arr[]) 
{
    for (int i=0; i<n; i++)
    {
        cout<<arr[i].FIO<<": "<<arr[i].year<<", "<<arr[i].region<<", "<<arr[i].fac<<endl;
    }
    cin.get();
}   
void main()
{
    const int N=3;
    char tmp[15];
    BIO BIOArr[N];
    Student StudArr[N]; 
    Input(N, BIOArr);
    Output(N, BIOArr);
 
    int count=0;
    for (int i=0; i<N; i++)
    {
        bool f=true;
        for (int i1=0;i1<count;i1++)
        {
            if (!strcmp(StudArr[i1].region,BIOArr[i].region))
            {
                f=false;
                StudArr[i1].kol++;
            }
        }
        if (f)
        {
            strcpy(StudArr[count].region,BIOArr[i].region);
            StudArr[count].kol=1;
            count++;
        }
    }
    cout<<"Kol Student: "<<endl;
    for (int i=0; i<count; i++)
        cout<<StudArr[i].region<<" = "<<StudArr[i].kol<<endl;
 
    cin.get();
}
1
Twinlamb
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 7
03.06.2013, 19:57  [ТС] #3
ViktorKozlov, Спасибо . О использовании логического типа я даже и не думал.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 19:57
Привет! Вот еще темы с ответами:

LINQ запрос: вывести имена студентов (без повторов) и количество студентов с таким именем - C#
Помогите составить следующий LINQ запрос Вывести имена студентов (без повторов) и количество студентов с таким именем

Массив студентов первого курса. Вывести процент студентов, сдавших все экзамены на 4, 5 - Turbo Pascal
Добрый вечер. Задание следующее: В массиве содержится информация о сдаче зимней сессии студентами первого курса. Сведения о каждом...

Массив студентов ВУЗа. выборка данных - C#
Дан массив студентов ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран результирующую таблицу: регион, количество студентов из этого...

Дан список студентов(Ф И О. группа), вывести на экран названия групп , где учатся 15 человек - Turbo Pascal
Создайте файл, содержащий информацию об учениках:фамилию , класс, количество пропущенных часов.Найти ученика с наименьшим количеством...


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

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

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