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

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

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

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

27.03.2014, 21:30. Просмотров 424. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать код, чтобы выводило студентов имеющих оценку 2 (C++):

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

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

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

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

Шифр Виженера: переписать код так, чтобы программа не только зашифровала, но и расшифровала текст - C++
Текст он зашифрует но не расшифрует. А как сделать чтобы он зашифровал и расшифровал текст??? #include &quot;stdafx.h&quot; #include &lt;ctime&gt; ...

Переписать код так, чтобы все вводимые данные кода передавались в качестве функции - C++
само задание есть и есть код, только не могу прописать функции. Помогите пожалуйста. По заданию нужно найти min элемент массива. и сумму...

5
zss
Модератор
Эксперт С++
6573 / 6135 / 2021
Регистрация: 18.12.2011
Сообщений: 15,990
Завершенные тесты: 1
27.03.2014, 21:54 #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; 
       } 
 }
1
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 261
28.03.2014, 08:57  [ТС] #3
Все отлично, только теперь если студента с оценкой 2 нету, то не выводится "Такие студенты отсутствуют"

Добавлено через 10 часов 57 минут
Подниму!
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
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 / 0
Регистрация: 20.10.2013
Сообщений: 261
28.03.2014, 09:03  [ТС] #5
фигурной скобки не хватает
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
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
Привет! Вот еще темы с ответами:

Распечатать фамилии и даты рождения студентов, не получивших оценку 3 - C++
Ввести информацию о 10 студентах группы. Информация содержит фамилию, имя, отчество студента, год рождения, четыре оценки за экзамены...

Как сделать чтобы ответ выводило таблицей по 10 чисел? - C++
Как сделать чтобы ответ выводило таблицей по 10 чисел? Ниже написан код программы #include &lt;iostream&gt; #include &lt;conio.h&gt; // для...

Как дописать, чтобы последнее число выводило Ноль(0) - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int main() { int i,n; int * array...

Что здесь надо подредактировать чтобы выводило с оценкой ниже 4 - C++
Доброе время суток господа. Столкнулся я с проблемой редактирования кода. Подскажите что тут подправить для вывода на экран учащихся с...


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

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

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