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

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

Восстановить пароль Регистрация
 
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 15:15     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #1
Всем доброго времени суток. У меня проблема в цикле 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 значений. Заранее благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 15:15     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив
Посмотрите здесь:

C++ дан двумерный массив размерностью Н, заполненный целыми числами, все его отрицательные элементы записать в одномерный массив, все его положительные за
C++ Записать в массив значения функции f (x) = asin(x /100) , при x = 1,2,...,100 и вывести его на экран
Дан текстовый файл F. Получить все его строки, содержащие более 60 символов. На С++ C++
дан текстовый файл. получить все его строки, содержащие более 20 символов, отличных от пробелов. C++
Почему не заносит в массив? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:21     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #2
C++
1
else grup[i].mark[j] = k;
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 15:25  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #3
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
else grup[i].mark[j] = k;
попробовал но все ровно та же беда заносит как ложные так и правдивые занчения
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:48     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #4
Исправленный код покажите.
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 15:52  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Исправленный код покажите.
пока нету, ищу везде мб вскоре найду тогда покажу
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
19.05.2013, 15:53     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #6
Цитата Сообщение от riml9inin Посмотреть сообщение
пока нету
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал но все ровно та же беда
покажите переделанный код!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 15:55     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #7
Цитата Сообщение от riml9inin Посмотреть сообщение
пока нету
Чего "пока нету"? Тогда это о чём?
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал но все ровно та же беда заносит как ложные так и правдивые занчения
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 16:14  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Чего "пока нету"? Тогда это о чём?
епт, уже напали я про код цикла. Ты говорил про изменения кода? я правильно понимаю?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
19.05.2013, 16:15     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #9
C++
1
2
3
4
5
6
                   if(n<k)
                        {
                            cout << "nevernyi ball \n";
                        }
                    else
                        grup[i].mark[j]=k;
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:19     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #10
Цитата Сообщение от riml9inin Посмотреть сообщение
епт, уже напали я про код цикла. Ты говорил про изменения кода? я правильно понимаю?
Цитата Сообщение от riml9inin Посмотреть сообщение
попробовал
То что попробовал покажи, чтобы увидеть как пробуешь. И не одну строчку, а цикл.
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 16:27  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #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;
            }
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:28     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #12
Цитата Сообщение от riml9inin Посмотреть сообщение
я выше изложил суть всей проблемы... изменение конструкции if...else не изменяет правильность выполнения цикла заполнения массива. он заносит как верные так и не верные значения. возможна ошибка в самом составлении цикла.
Суть проблемы давно понятна. Тебе предложили исправления. Пишешь, что не помогло. Просят показать, как применял предложенные исправления. Что непонятного?

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

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

Добавлено через 56 секунд
И где здесь предложенные исправления?
да твоего выше поста я не мог понять (не так понял ) чего вы именно хотели....
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:30     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #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;
            
}
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 16:36  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #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;
            }
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;
Ничего не меняется

riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 16:40  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #17
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:

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

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

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;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 16:41     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #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).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 16:53     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив
Еще ссылки по теме:

C++ Напечатать все значения n, при которых все числа последовательности будут не меньше а
Выделить в другой массив все числа, которые встречаются более одного раза в исходном C++

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

Или воспользуйтесь поиском по форуму:
riml9inin
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 43
19.05.2013, 16:53  [ТС]     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив #19
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:

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

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

Добавлено через 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(;; )и нормальное заполнение.
очн благодарен !
Yandex
Объявления
19.05.2013, 16:53     При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив
Ответ Создать тему
Опции темы

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