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

Структура студент. Поиск группы с макс. оценкой - C++

Восстановить пароль Регистрация
 
Alexandrov_Nik
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 20
10.05.2013, 15:55     Структура студент. Поиск группы с макс. оценкой #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
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// ТИПИС.cpp : Defines the entry point for the console application.
//
 
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;    
const int n=3, m=4;//n-количество студентов, m-число оценок за сессию
struct student
{
    char name[100];
    char group[10];
    int ses[m];
    void print()
    {
        cout<<"Имя студента: ";
        cout<<name;
        cout<<endl;
        cout<<"Группа: ";
        cout<<group;
        cout<<endl;
        cout<<"Оценки: ";
        cout<<endl;
        for (int j=0; j<m; j++)
        {
            cout<<ses[j]<<" ";
        }
    }
};
 
 
void find(student *stud1, int n)
{
    bool found = false;
    int k=0;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
            if (stud1[i].ses[j]==2)
            {
                cout<<stud1[i].name<<endl<<stud1[i].group<<endl;//и вывод его на печать
                found = true;
            }
    }
    try 
    {
        if (!found)
            throw "Неуспевающих нет";
    }
    catch(const char * massage)
    {
        cerr<<massage<<endl;
    }
}
void main()
{
    setlocale(LC_ALL, "Russian");   
    int i;  
    student stud1[n];
    student a;
    for (i=0;i<n;i++)//цикл по студентам
    {
        cout<<"\nВведите студента "<<i+1;
        cout<<"\nВведите фамилию ";
        cin>>stud1[i].name;
        cout<<"\nВведите группу ";
        cin>>stud1[i].group;
        cout<<"\nВведите оценки ";
        for (int j=0;j<m;j++)//цикл по оценкам
            cin>>stud1[i].ses[j];
    }
    //--------------
    for (int k=0; k<n; k++)
    {
        for (int l=n-1; l>k; l--)
        { 
            if (strcmp(stud1[l-1].group, stud1[l].group) == 1)
            {
                a = stud1[l];
                stud1[l] = stud1[l-1];
                stud1[l-1] = a;
            }
        }
    }
        find(stud1, n);
            //------Поиск группы с максимальным средним баллом-----
        float s[n];
        for (int i = 0; i <= n; i++) 
        {
            s[i] = 0;
            for (int j = 0; j < m; j++) 
            {
                s[i] = stud1[i].ses[j]+s[i];
            }
            s[i]=s[i]/m;
        }
        float max_avg=0;
        for (int i=0; i<n; i++)
        {
            for (int l=n-1; l>i; l--)
            { 
                if(s[l-1]<s[l])
                {
                    max_avg=s[l];
                    s[l] = s[l-1];
                    s[l-1] = max_avg;
                }
            }
        }
        cout<<"Группа с максимальным средним баллом:"<<endl;
        cout<<stud1[1].group<<endl;
        //------------------------------------------
        system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VirusSkayneD
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 2
10.05.2013, 16:24     Структура студент. Поиск группы с макс. оценкой #2
код не напишу но алгоритм:
1)ищем максимальную среднюю оценку ргуппы
2)в цикле проверяем у каких груп она такая, одновременно считая их количество и записывая их номера в массив
3) выводим список групп, номера которых вписамы в наш массив
Alexandrov_Nik
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 20
10.05.2013, 17:39  [ТС]     Структура студент. Поиск группы с макс. оценкой #3
Цитата Сообщение от VirusSkayneD Посмотреть сообщение
код не напишу но алгоритм:
1)ищем максимальную среднюю оценку ргуппы
2)в цикле проверяем у каких груп она такая, одновременно считая их количество и записывая их номера в массив
3) выводим список групп, номера которых вписамы в наш массив
Алгоритм мне понятен. у меня проблема именно в реализации.
Alexandrov_Nik
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 20
12.05.2013, 19:52  [ТС]     Структура студент. Поиск группы с макс. оценкой #4
Пожалуйста помогите кто-нибудь правильно дописать эту прогу
Yandex
Объявления
12.05.2013, 19:52     Структура студент. Поиск группы с макс. оценкой
Ответ Создать тему
Опции темы

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