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

При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив

19.05.2013, 15:15. Показов 617. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. У меня проблема в цикле for и (if else)

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
void info()
{
    for (int i=1;i<3;i++)
        {
            cout << "first_name "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].first_name;
            cout << "name "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].name;
            cout << "year_of_birth "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].year_of_birth;
            cout << "mark "<<i<<" -go stydenta"<<endl;
            
            for(int j=0;j<5;j++)    
            {   
                    int const n=10;
                    int k;
                    cin >> k;
                    if(n<k)
                        {
                            cout << "nevernyi ball \n";
                        }
                    else(n>=k);
                        grup[i].mark[j]=k;
            }
            int summa = 0;
            for (int j=0;j<5;j++)
                {
                    summa += grup[i].mark[j];
                }
            grup[i].summa_bal = summa;
    }
}
В этом цикле должен происходить выбор оценки до 10 и занесения его в массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int j=0;j<5;j++)    
            {   
                    int const n=10;
                    int k;
                    cin >> k;
                    if(n<k)
                        {
                            cout << "nevernyi ball \n";
                        }
                    else(n>=k);
                        grup[i].mark[j]=k;
            }
но проблема при написании значения более 10 пишет неверный балл, но все ровно его заносит в массив после чего цикл заканчивается после любых 10 значений. Заранее благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2013, 15:15
Ответы с готовыми решениями:

Найдите все значения параметра, при каждом из которых уравнение имеет ровно 2 корня
Помогите решить. Найдите все значения а, при каждом из которых уравнение|x+a|+||x-3|-4|=1 имеет...

Найдите все значения параметра, при которых уравнение имеет ровно два решения
Здравствуйте. Решаю задачи с параметром из ЕГЭ, и есть одна конкретная, на которую потратил уйму...

При вводе s1 и s2 пишет неверный интервал
При вводе s1 и s2 пишет неверный интервал... почему? даже если числа в строго указанном...

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

18
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:21 2
C++
1
else grup[i].mark[j] = k;
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 15:25  [ТС] 3
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
else grup[i].mark[j] = k;
попробовал но все ровно та же беда заносит как ложные так и правдивые занчения
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:48 4
Исправленный код покажите.
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 15:52  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
Исправленный код покажите.
пока нету, ищу везде мб вскоре найду тогда покажу
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
19.05.2013, 15:53 6
Цитата Сообщение от riml9inin Посмотреть сообщение
пока нету
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал но все ровно та же беда
покажите переделанный код!
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:55 7
Цитата Сообщение от riml9inin Посмотреть сообщение
пока нету
Чего "пока нету"? Тогда это о чём?
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал но все ровно та же беда заносит как ложные так и правдивые занчения
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:14  [ТС] 8
Цитата Сообщение от alsav22 Посмотреть сообщение
Чего "пока нету"? Тогда это о чём?
епт, уже напали я про код цикла. Ты говорил про изменения кода? я правильно понимаю?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
19.05.2013, 16:15 9
C++
1
2
3
4
5
6
                   if(n<k)
                        {
                            cout << "nevernyi ball \n";
                        }
                    else
                        grup[i].mark[j]=k;
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:19 10
Цитата Сообщение от riml9inin Посмотреть сообщение
епт, уже напали я про код цикла. Ты говорил про изменения кода? я правильно понимаю?
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал
То что попробовал покажи, чтобы увидеть как пробуешь. И не одну строчку, а цикл.
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:27  [ТС] 11
я выше изложил суть всей проблемы... изменение конструкции if...else не изменяет правильность выполнения цикла заполнения массива. он заносит как верные так и не верные значения. возможна ошибка в самом составлении цикла.

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
То что попробовал покажи, чтобы увидеть как пробуешь. И не одну строчку, а цикл.
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int const n=10;
            int k;
            cin >> k;
            while(grup[i].mark[j]=<5)
            {
                if(n<k)
                    {
                        cout << "nevernyi ball \n";
                    }
                else(k<=n);
                    for(int j=0;j<5;j++)
                        grup[i].mark[j] = k;
            }
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:28 12
Цитата Сообщение от riml9inin Посмотреть сообщение
я выше изложил суть всей проблемы... изменение конструкции if...else не изменяет правильность выполнения цикла заполнения массива. он заносит как верные так и не верные значения. возможна ошибка в самом составлении цикла.
Суть проблемы давно понятна. Тебе предложили исправления. Пишешь, что не помогло. Просят показать, как применял предложенные исправления. Что непонятного?

Добавлено через 56 секунд
И где здесь предложенные исправления?
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:30  [ТС] 13
но не знаю как определить кол-во раз цикла, что бы записало 5 верных значений в массив

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Суть проблемы давно понятна. Тебе предложили исправления. Пишешь, что не помогло. Просят показать, как применял предложенные исправления. Что непонятного?

Добавлено через 56 секунд
И где здесь предложенные исправления?
да твоего выше поста я не мог понять (не так понял ) чего вы именно хотели....
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:30 14
Вот так работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int j = 0; j < 5; j++)    
{   
        int const n = 10;
        int k;
        cin >> k;
        if(n < k)
        {
             cout << "nevernyi ball \n";
        }
        else grup[i].mark[j] = k;
            
}
1
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:36  [ТС] 15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int j=0;j<5;j++)    
                {   
                    int const n=10;
                    int k,l;
                    cin >> l;
                    if(n<l)
                        {
                            cout << "nevernyi ball \n";
                            k!=l;
                        }
                    else(k<=n);
                        k=l;    
                        grup[i].mark[j] = k;
                    
                }
В этом случае... все значения вносятся от него вообще отказался

Добавлено через 41 секунду
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот так работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int j = 0; j < 5; j++)    
{   
        int const n = 10;
        int k;
        cin >> k;
        if(n < k)
        {
             cout << "nevernyi ball \n";
        }
        else grup[i].mark[j] = k;
            
}
нет заносит все значения

Добавлено через 3 минуты
думаю эта конструкция будет лучше но её нужно подправить чтобы выполнялась до заполнения массива

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int const n=10;
            int k;
            cin >> k;
            while(1=5)   //(grup[i].mark[5]=5) - но это условие не верное 
            {
                if(n<k)
                    {
                        cout << "nevernyi ball \n";
                    }
                else(k<=n);
                    for(int j=0;j<5;j++)
                        grup[i].mark[j] = k;
            }
0
Croessmah
19.05.2013, 16:37
  #16

Не по теме:

C++
1
else(k<=n);
C++
1
2
3
else(k<=n);
k=l;
grup[i].mark[j] = k;
Ничего не меняется :facepalm:

0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:40  [ТС] 17
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:

C++
1
else(k<=n);
C++
1
2
3
else(k<=n);
k=l;
grup[i].mark[j] = k;
Ничего не меняется :facepalm:

даже не знаю вот весь код но он не дописан

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
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
struct stud
{
    char first_name[15];            // фамилия   
    char name[10];                  // имя
    int year_of_birth;              // дата рождения    
    int mark[5];                    // отметки за экзамен
    int summa_bal;                  // средний балл
};
stud st1;
stud grup[2];
void menu()
    {
        cout << "1. Dobavit info o studente \n";
        cout << "2. Sortirovat po srednemy bally \n";
        cout << "3. Vyvod info o studente \n";
        cout << "4. Save and Exit \n";
    }
void info()
{
    for (int i=1;i<3;i++)
        {
            cout << "first_name "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].first_name;
            cout << "name "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].name;
            cout << "year_of_birth "<<i<<" -go stydenta"<<endl;
            cin >> grup[i].year_of_birth;
            cout << "mark "<<i<<" -go stydenta"<<endl;
//////////////////////////////////////////////////////////////////          
            for(int j = 0; j < 5; j++)    
                {   
                    int const n = 10;
                    int k;
                    cin >> k;
                    if(n < k)
                        {
                                cout << "nevernyi ball \n";
                        }
                    else grup[i].mark[j] = k;
            
                }
///////////////////////////////////////////////////////////////////
            /*int const n=10;
            int k;
            cin >> k;
            while(1=5)
            {
                if(n<k)
                    {
                        cout << "nevernyi ball \n";
                    }
                else(k<=n);
                    for(int j=0;j<5;j++)
                        grup[i].mark[j] = k;
            }*/
///////////////////////////////////////////////////////////////////
            int summa = 0;
            for (int j=0;j<5;j++)
                {
                    summa += grup[i].mark[j];
                }
            grup[i].summa_bal = summa;
    }
}
void out_info() 
    {
        for (int i=1;i<3;i++)
            {
                cout << i <<"."<< grup[i].first_name <<" "<< grup[i].name <<" "<< grup[i].year_of_birth <<" ";
                for (int j=0;j<5;j++)
                    cout <<grup[i].mark[j]<<" ";
                cout <<"sred znach = "<<grup[i].summa_bal;  
                cout <<"\n";
            }
    }
int main()
{   
    int h;
    for(;; )
    {   
        menu();
        cout << "Vyberete nomer \n";
        cin >> h;
        switch(h)
        {
            case(1):info();
                break;
            /*case(2):sortirovka();
                break;*/
            case(3):out_info();
                break;
            /*case(4):save_exit();
                break;*/
        }
    }
    return 0;
}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:41 18
Ничего не пойму. Вот так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int j = 0; j < 5; )    
{   
        int const n = 10;
        int k;
        cin >> k;
        if(n < k)
        {
             cout << "nevernyi ball \n";
        }
        else 
        {
            grup[i].mark[j] = k;
            ++j;
        }
            
}
Занесутся только пять правильных (больше или равных 10).
1
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 45
19.05.2013, 16:53  [ТС] 19
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:

C++
1
else(k<=n);
C++
1
2
3
else(k<=n);
k=l;
grup[i].mark[j] = k;
Ничего не меняется :facepalm:

это я исправлял..... к слову)
просто удалял этот цикл, но когда сказали показать я его написал но не точно

Добавлено через 4 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Ничего не пойму. Вот так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int j = 0; j < 5; )    
{   
        int const n = 10;
        int k;
        cin >> k;
        if(n < k)
        {
             cout << "nevernyi ball \n";
        }
        else 
        {
            grup[i].mark[j] = k;
            ++j;
        }
            
}
Занесется только пять правильных (больше или равных 10).
с этим все нормально работает спс!

Добавлено через 4 минуты
Цитата Сообщение от riml9inin Посмотреть сообщение
for(int j = 0; j < 5; )
grup[i].mark[j] = k;
++j
не думал что так можно использовать...
знал только что цикл for(;; )и нормальное заполнение.
очн благодарен !
0
19.05.2013, 16:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2013, 16:53
Помогаю со студенческими работами здесь

Почему в фотошопе все ровно, а в реальности при тех же стилях не ровно?
body{ background-color:#f7f7f7; } table{ background-color:#ffffff; } * { box-sizing:...

Найдите все значения а, при каждом из которых система уравнений имеет ровно четыре различных решения
Здравствуйте, помогите, пожалуйста, решить задачу с параметром. Найдите все значения а, при каждом...

Все значения k при котором прямая y=kx имеет с графиком данной функции ровно одну общую точку
Номер 23. Заранее спасибо! Правила, 5.18. Задания набирать ручками. Для формул есть редактор.

Не пишет русскими буквами в VS при написании приложений под Windows
Проблема заключается в следующем В VS при написании приложений под Windows в одном единственном...


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

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