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

Переписать код, чтобы выводило студентов имеющих оценку 2 - C++

Восстановить пароль Регистрация
 
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 233
27.03.2014, 21:30     Переписать код, чтобы выводило студентов имеющих оценку 2 #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
#include <iostream>
#include <string>
using namespace std; 
 
struct STUDENT // структура STUDENT
{ 
    string name; 
    int group; 
    float ses[5]; 
};
 
int main() 
{   
    setlocale(0,"rus");
    const int size = 10; // количество сеудентов
    STUDENT stud1[size]; // массив 
    int i, j;  
    int n = 0; // счётчик студентов
    int count = 0; // счётчик студентов с плохими отметками 
                   // усли он равен количеству студентов значит  
                   // хорошистов нет
 
    for ( i = 0; i < size; i++)  // ввод информации
    { 
        cout << "Введите фамилию студента " << endl; 
        cin >> stud1[n].name; 
        cout << "Введите номер группы " << endl; 
        cin >> stud1[n].group; 
        cout << "Введите 5 оценок " << endl; 
        for (int i = 0; i < 5; i++) 
        cin >> stud1[n].ses[i]; 
        n++;
        
    } 
    float sum = 0; // счётчик суммы оценок
    for ( i = 0; i < size; i++) 
    {
        for (j = 0; j < 5; j++) 
          sum += stud1[i].ses[j]; 
          
            if(sum / 5 > 4.0) // условие хорошиста
            { 
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
            }  
            else  
                count++;
 
            sum = 0;
        }  
    if(count == size) 
        cout << "Такие студенты отсутствуют " << endl; 
 
    system("Pause");
 
    return 0;
}
В этой программе выводится если средний балл студента больше 4.0. А мне нужно, чтобы выводило студентов имеющих оценку 2.
Попробовал изменить вот это
C++
1
 if(sum == 2)
но ничего не получается
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 21:30     Переписать код, чтобы выводило студентов имеющих оценку 2
Посмотрите здесь:

Структуры. Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2. C++
Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике. C++
Как сделать чтобы ответ выводило таблицей по 10 чисел? C++
Что здесь надо подредактировать чтобы выводило с оценкой ниже 4 C++
C++ Что нужно изменить, чтобы выводило максимальный элемент каждой строки в одномерный массив?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
27.03.2014, 21:54     Переписать код, чтобы выводило студентов имеющих оценку 2 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
for ( i = 0; i < size; i++) 
{
       for (j = 0; j < 5; j++) 
       {
           if(stud1[i].ses[j]==2)
           { 
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
            } 
       } 
 }
Добавлено через 2 минуты
Или (чтобы избежать многократного вывода)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for ( i = 0; i < size; i++) 
{
       bool pres=false;
       for (j = 0; j < 5; j++) 
       {
           if(stud1[i].ses[j]==2)
           {
                pres=true;break; 
           } 
       } 
       if(pres)
       {
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
       } 
 }
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 233
28.03.2014, 08:57  [ТС]     Переписать код, чтобы выводило студентов имеющих оценку 2 #3
Все отлично, только теперь если студента с оценкой 2 нету, то не выводится "Такие студенты отсутствуют"

Добавлено через 10 часов 57 минут
Подниму!
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
28.03.2014, 08:59     Переписать код, чтобы выводило студентов имеющих оценку 2 #4
VitekSR, в код не вникал но вот это
C++
1
2
3
4
5
if(pres)
       {
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
       }
попробуйте заменить на
C++
1
2
3
4
5
6
7
if(pres)
       {
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
       }
else
   cout << "Такие студенты отсутствуют" << endl;
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 233
28.03.2014, 09:03  [ТС]     Переписать код, чтобы выводило студентов имеющих оценку 2 #5
фигурной скобки не хватает
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
28.03.2014, 09:32     Переписать код, чтобы выводило студентов имеющих оценку 2 #6
Если заменили в точности как я сказал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for ( i = 0; i < size; i++) 
{
       bool pres=false;
       for (j = 0; j < 5; j++) 
       {
           if(stud1[i].ses[j]==2)
           {
                pres=true;break; 
           } 
       } 
       if(pres)
       {
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
       } 
 }
на это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for ( i = 0; i < size; i++) 
{
       bool pres=false;
       for (j = 0; j < 5; j++) 
       {
           if(stud1[i].ses[j]==2)
           {
                pres=true;break; 
           } 
       } 
       if(pres)
       {
                cout << stud1[i].name << endl; 
                cout << stud1[i].group << endl; 
       }
else
   cout << "Такие студенты отсутствуют" << endl;
 }
то всего хватает.
Вы же в выражении
C++
1
2
if (true)
   cout << "true" << endl;
не ставите скобки, если речь конечно об этом.
Yandex
Объявления
28.03.2014, 09:32     Переписать код, чтобы выводило студентов имеющих оценку 2
Ответ Создать тему
Опции темы

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