Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
1

Ввод информации в структуру и поиск минимального элемента

12.02.2015, 20:42. Показов 6856. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, с этим кодом... Как бы я не танцевал над ним, не получается довести ее до ума
Кто чем может, помогите, в долгу не останусь
Для получения места в общежитии формируется список студентов, который включает ФИО студента, группу, средний балл, доход на члена семьи. Общежитие в первую очередь предоставляет-ся тем, у кого доход на члена семьи меньше. Вывести студента с минимальным доходом.

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
#include "stdafx.h" 
#include <iostream> 
#include <string> 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    struct Stud //создание структуры "Список Студентов"
    {
        char fio[20];
        string group;
        int srbal;
        int dohod;
    };
    const int kvo = 5; // Обьявление переменной kvo - количество  студентов в списке
    int numd;
 
    cout << "Список студентов на заселение в общагу: " << endl;
    Stud Fam[kvo]; // Структура Stud с массивом Fam - кол-во студентов
    for (numd = 0; numd <= kvo; numd++){
        cout << "Введите ФИО " << numd +1 << "-го студента -> ";
        cin >> Fam[numd].fio;
        cout << "Введите группу " << numd +1<< "-го студента -> ";
        cin >> Fam[numd].group;
        cout << "Введите средний балл " << numd +1 << "-го студента -> ";
        cin >> Fam[numd].srbal;
        cout << "Введите доход на члена семьи  " << numd +1 << "-го студента ->";
        cin >> Fam[numd].dohod;
    }
    cout << endl << endl;
    for (numd = 1; numd <= kvo; numd++){
        cout << "Студент - " << Fam[numd].fio << " , доход - " << Fam[numd].dohod << endl;
    }
    int mindohod = Fam[0].dohod;
    int number = 0;
    for (numd = 1; numd <= kvo; numd++)
    {
        if (mindohod < Fam[kvo].dohod)
        {
            mindohod = Fam[kvo].dohod;
            number = numd;
        }
    }
    cout << endl << "ФИО студента с минимальным доходом - " << Fam[number].fio << endl;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2015, 20:42
Ответы с готовыми решениями:

Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
В сервис-центре хранятся квитанции о сданной в ремонт аппаратуре. Каждая квитанция содержит...

Реализовать ввод данных в структуру и поиск информации в ней
1. Описать класс ORDER, реализующий однонаправленный линейный список для работы со следующими ...

Поиск минимального значения элемента и определение порядкового номера наименьшего элемента
Дана непустая последовательность различных натуральных чисел. Определить порядковый номер...

Поиск минимального значения элемента и определение порядкового номера наименьшего элемента
Необходимо написать программу, формирующую рандомный одномерный массив, а после определяющую...

8
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
12.02.2015, 20:52 2
вам нужно искать min ,а вы ищите max
в условии смените < на >
C++
1
2
3
4
5
6
7
8
 for (numd = 1; numd <= kvo; numd++)
    {
        if (mindohod < Fam[kvo].dohod)
        {
            mindohod = Fam[kvo].dohod;
            number = numd;
        }
    }
Добавлено через 2 минуты
ну и вам ведь нужно перебрать все студентов ,а вы всегда смотрите на Fam[kvo].dohod ,то есть вместо kvo должно быть numd
0
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
12.02.2015, 20:53  [ТС] 3
А в чем отличие между моим и вашим? Я не вижу разницы
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
12.02.2015, 20:54 4
ни в чем ,я ведь написал что сменить нужно
0
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
12.02.2015, 20:58  [ТС] 5
Можете сказать где и в каких местах? ибо я уже ничего не понимаю
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
12.02.2015, 20:59 6
C++
1
2
3
4
5
6
7
8
for (numd = 1; numd <= kvo; numd++)
    {
        if (mindohod > Fam[numd].dohod)
        {
            mindohod = Fam[numd].dohod;
            number = numd;
        }
    }
0
Модератор
5047 / 3276 / 526
Регистрация: 01.06.2013
Сообщений: 6,806
Записей в блоге: 9
12.02.2015, 21:05 7
Кроме того проверки в циклах не те - <= вместо <
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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    struct Stud //создание структуры "Список Студентов"
    {
        string fio;
        string group;
        int srbal;
        int dohod;
    };
    const int kvo = 5; // Обьявление переменной kvo - количество  студентов в списке
    int numd;
 
    cout << "Список студентов на заселение в общагу: " << endl;
    Stud Fam[kvo]; // Структура Stud с массивом Fam - кол-во студентов
    for (numd = 0; numd < kvo; numd++){
        cout << "Введите ФИО " << numd +1 << "-го студента -> ";
        cin >> Fam[numd].fio;
        cout << "Введите группу " << numd +1<< "-го студента -> ";
        cin >> Fam[numd].group;
        cout << "Введите средний балл " << numd +1 << "-го студента -> ";
        cin >> Fam[numd].srbal;
        cout << "Введите доход на члена семьи  " << numd +1 << "-го студента ->";
        cin >> Fam[numd].dohod;
    }
    cout << endl << endl;
    for (numd = 0; numd < kvo; numd++){
        cout << "Студент - " << Fam[numd].fio << " , доход - " << Fam[numd].dohod << endl;
    }
    int mindohod = Fam[0].dohod;
    int number = 0;
    for (numd = 1; numd < kvo; numd++)
    {
        if (mindohod > Fam[kvo].dohod)
        {
            mindohod = Fam[kvo].dohod;
            number = numd;
        }
    }
    cout << endl << "ФИО студента с минимальным доходом - " << Fam[number].fio << endl;
        _getche();//system("pause");
    return 0;
}
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
12.02.2015, 21:09 8
Лучший ответ Сообщение было отмечено Metricids как решение

Решение

в следующий раз попробуй код построчно запустить и найти все ошибки ,это ведь не сложно
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
int main(){
    setlocale(LC_ALL, "Russian");
 
    struct Stud //создание структуры "Список Студентов"
    {
        char fio[20];
        string group;
        int srbal;
        int dohod;
    };
    const int kvo = 3; // Обьявление переменной kvo - количество  студентов в списке
    int numd;
 
    cout << "Список студентов на заселение в общагу: " << endl;
    Stud Fam[kvo]; // Структура Stud с массивом Fam - кол-во студентов
    for (numd = 0; numd <kvo; numd++){
        cout << "Введите ФИО " << numd + 1 << "-го студента -> ";
        cin >> Fam[numd].fio;
        cout << "Введите группу " << numd + 1 << "-го студента -> ";
        cin >> Fam[numd].group;
        cout << "Введите средний балл " << numd + 1 << "-го студента -> ";
        cin >> Fam[numd].srbal;
        cout << "Введите доход на члена семьи  " << numd + 1 << "-го студента ->";
        cin >> Fam[numd].dohod;
    }
    cout << endl << endl;
    for (numd = 0; numd < kvo; numd++){
        cout << "Студент - " << Fam[numd].fio << " , доход - " << Fam[numd].dohod << endl;
    }
    int mindohod = Fam[0].dohod;
    int number = 0;
    for (numd = 0; numd < kvo; numd++)
    {
        if (mindohod > Fam[numd].dohod)
        {
            mindohod = Fam[numd].dohod;
            number = numd;
        }
    }
    cout << endl << "ФИО студента с минимальным доходом - " << Fam[number].fio << endl;
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
12.02.2015, 21:30  [ТС] 9
Все, понял, спасибо вам большое
0
12.02.2015, 21:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2015, 21:30
Помогаю со студенческими работами здесь

Поиск минимального элемента за О(1)
Написать программу поиска минимального элемента в неупорядоченном массиве за О(1)

Поиск минимального элемента
Помогите разобраться. У меня массив состоит из 8 элементов, и записа с сотой ячейки памяти, и надо...

Поиск минимального элемента
Доброго времени суток. Помогите пожалуйста с программой, вот задание: В одномерном массиве,...

Ввод и поиск информации о книгах
Пытаюсь создать программу , которая заполняет массив структур данными,выводит на экран , и поиск в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru