Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
VitekSR
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 269
1

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

27.03.2014, 21:30. Просмотров 968. Ответов 5
Метки нет (Все метки)

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)
но ничего не получается
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 21:30
Ответы с готовыми решениями:

Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике.
15. Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку...

Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2
Необходимо описать код с помощью классов. Задание: 1. Описать структуру с...

Структуры. Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2.
1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME -...

Работа с файлами: вычислить количество студентов, не имеющих "2" по физике, и средний балл всех студентов
Дан текстовой файл содержащий список студентов и их оценки по трем...

Пропатчить Hello World, чтобы выводило Hello %Username%
Есть программа 'Hello world', нужно написать еще одну программу (&quot;патч&quot;), чтобы...

5
zss
Модератор
Эксперт С++
7186 / 6681 / 4230
Регистрация: 18.12.2011
Сообщений: 17,629
Завершенные тесты: 1
27.03.2014, 21:54 2
Лучший ответ Сообщение было отмечено VitekSR как решение

Решение

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; 
       } 
 }
1
VitekSR
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 269
28.03.2014, 08:57  [ТС] 3
Все отлично, только теперь если студента с оценкой 2 нету, то не выводится "Такие студенты отсутствуют"

Добавлено через 10 часов 57 минут
Подниму!
0
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
28.03.2014, 08:59 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;
0
VitekSR
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 269
28.03.2014, 09:03  [ТС] 5
фигурной скобки не хватает
0
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
28.03.2014, 09:32 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;
не ставите скобки, если речь конечно об этом.
0
28.03.2014, 09:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2014, 09:32

Определить среднюю оценку студентов по каждому из предметов
Всем привет Кто может, помогите решить задачки по лабораторной через do-while...

Шифр Виженера: переписать код так, чтобы программа не только зашифровала, но и расшифровала текст
Текст он зашифрует но не расшифрует. А как сделать чтобы он зашифровал и ...

Переписать код так, чтобы все вводимые данные кода передавались в качестве функции
само задание есть и есть код, только не могу прописать функции. Помогите...


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

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

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