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

Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) - C++

Восстановить пароль Регистрация
 
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 19:49     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #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
#include <iostream>
using namespace std;
int main()
{
    int c =0;
    int ma[3];
    cout << "Vvedi znachenie "<<"\n";
    int i=0
    ;
    int temp ;
    cin >> temp;
    for (;i<3 && temp>=0; i++)
    {
          ma[i] = temp;
          
          cout << "Vvedi znachenie "<<"\n";
          cin >> temp;
          }
     for (int n =0; n<i; n++)
     c+=ma[n];
     cout << c/i << "   " << i;
     cin >> c;
     return 0;
     }
мне надо чтобы я вводил 3 раза а он спрашивает четвертый раз и его не считает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2011, 19:49     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде)
Посмотрите здесь:

C++ Неожиданное поведение программы: найти ошибку в коде
C++ Вычислить и вывести значение суперпозиции функций (неожиданное поведение программы: найти ошибку в коде)
C++ Неожиданное поведение программы: почему не работает цикл do while?
C++ Неожиданное поведение программы: почему не работает цикл while?
C++ Неожиданное поведение программы: исправить ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
20.05.2011, 20:07     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #2
мне надо чтобы я вводил 3 раза а он спрашивает четвертый раз и его не считает
А в чем проблема то? Всё считает. Сколько раз задали, столько и спрашивает.
один раз до цикла и три раза в цикле.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 20:20  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #3
вот так у меня


Vvedi znachenie
10
Vvedi znachenie
10
Vvedi znachenie
10
Vvedi znachenie
10
10 3


тут четвертый раз я ввожу значение 10 а он его не считает
мне надо чтоб токо 3 раз я ввел и он посчитал среднюю сумуу
я что то не так написал там
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 20:29     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #4
надо
C++
1
i< 2
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 20:53  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #5
я токо понял 1 раз до цикла и 3 раз в цикле

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
надо
C++
1
i< 2
а теперь
Vvedi znachenie
10
Vvedi znachenie
10
Vvedi znachenie
10
10 2

теперь он не считает то что я ввел 3 -ий раз
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 21:58     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #6
Ну ты же три раза ввёл?
C++
1
     cout << c/i << "   " << i+ 1;
...А вообще попытайся все три раза вводить в цикле. Оно пограмотнее будет.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 22:09  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #7
Цитата Сообщение от kravam Посмотреть сообщение
Ну ты же три раза ввёл?
C++
1
     cout << c/i << "   " << i+ 1;
...А вообще попытайся все три раза вводить в цикле. Оно пограмотнее будет.
да три раза но он запсивает в массив токо первые два и делит на два
а если я прибалю 1 к i он просто мне покажет что 3 а не самом деле делит на два

Добавлено через 3 минуты
надо создать программу которая считывает в массив 10 значений, а потом показывает среднюю величину чисел и еще выводить скоко значений было записано в массив
и прерываться когда я ввожу нечисло


помогите как зделать
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 22:23     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #8
Ну так в чём дело? Делай цикл из десяти итераций. Не из девяти и не из одиннадцати а из десяти. Вперёд.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 22:30  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #9
C++
1
2
3
4
5
6
7
8
 int temp ;
    cin >> temp;
    for (;i<3 && temp>=0; i++)
    {
          ma[i] = temp;
          
          cout << "Vvedi znachenie "<<"\n";
          cin >> temp;
вот так у меня а как это зделать
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 22:38     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #10
Блин, давай весь код. В нём я хочу увидеть цикл из десяти итераций в каждой из которых ты вводишь число и инициализируешь соответствующий элемент массива этим числом.
Последний раз тебе говорю- не три прохода не четыре и не пять а ДЕСЯТЬ. Потому что у тебя массив из ДЕСЯТИ ЧИСЕЛ.

Чё непонятно лучше переспроси.
jonson
20.05.2011, 22:50
  #11

Не по теме:

Цитата Сообщение от kravam Посмотреть сообщение
Последний раз тебе говорю- не три прохода не четыре и не пять а ДЕСЯТЬ. Потому что у тебя массив из ДЕСЯТИ ЧИСЕЛ
Вам бы преподавательством заняться....

ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 23:03  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #12
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
#include <iostream>
using namespace std;
int main()
{
    int c =0;
    int ma[10];
    cout << "Vvedi znachenie "<<"\n";
    int i=0
    ;
    int temp ;
    cin >> temp;
    for (;i<10 && temp>=0; i++)
    {
          ma[i] = temp;
          
          cout << "Vvedi znachenie "<<"\n";
          cin >> temp;
          }
     for (int n =0; n<i; n++)
     c+=ma[n];
     cout << c/i << "   " << i;
     cin >> c;
     return 0;
     }
здесь он у меня спрашивает ввести число 11 раз
11-ый раз я ввожу впустую

Добавлено через 1 минуту
я не пойму как зделать так чтобы он спрашивал меня 10 раз и все 10 значений записал в массив
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 23:07     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #13
ОК, теперь смотри. В цикле ты должен 10 раз ввести число и 10 же раз присвоить его значение определённом элементу массива. В цикле, понимаешь. Не вне цикла а В цикле.
Ну то есть ты понял, что строка 11 где ты вводишь число ВНЕ цикла это нехорошо.

Вот убери её. Но не просто закомменть, а обдуманно попытайся убрать. Код сюда.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 23:25  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #14
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
#include <iostream>
using namespace std;
int main()
{
    int c =0;
    int ma[3];
    cout << "Vvedi znachenie "<<"\n";
    int i=0
    ;
    int temp ;
    
    for (;i<3 &&  cin >> temp; i++)
    {
        if (temp<0)
        break;
               ma[i] = temp;
          
          cout << "Vvedi znachenie "<<"\n";
          
          }
     for (int n =0; n<i; n++)
     c+=ma[n];
     cout << c/i << "   " << i;
     cin >> c;
     return 0;
     }
вот все таки получилось

Добавлено через 4 минуты
просто долго вводить надо десять чисел вот и пробовал на 3
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
20.05.2011, 23:31     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #15
Правильно, а тебе не кажется, что temp здесь лишняя сущность?
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
#include <iostream>
using namespace std;
int main()
{
    int c =0;
    int ma[3];
    cout << "Vvedi znachenie "<<"\n";
    int i=0
    ;
    
    for (;i<3 &&  cin >> ma[i]; i++)
    {
        if (ma[i]< 0)
        break;
          
          cout << "Vvedi znachenie "<<"\n";
          
          }
     for (int n =0; n<i; n++)
     c+=ma[n];
     cout << c/i << "   " << i;
     cin >> c;
     return 0;
     }
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
20.05.2011, 23:36  [ТС]     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #16
точно так лучше
спасибо
Rezzzz
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 1
05.11.2016, 13:05     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #17
Он в цикле считает 0 за единицу по этому 4 раза
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2016, 18:10     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде)
Еще ссылки по теме:

C++ Вычислить значение тригонометрического выражения (неожиданное поведение программы - как исправить?)
C++ Прохождение лабиринта: неожиданное поведение программы (найти и исправить ошибки)
C++ Вычислить значение функции (неожиданное поведение программы - как исправить?)

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

Или воспользуйтесь поиском по форуму:
gru74ik
Модератор
 Аватар для gru74ik
3083 / 1328 / 165
Регистрация: 20.02.2013
Сообщений: 3,785
Записей в блоге: 17
05.11.2016, 18:10     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде) #18
Цитата Сообщение от Rezzzz Посмотреть сообщение
Он в цикле считает 0 за единицу по этому 4 раза
Rezzzz, правильнее сказать "нумерация элементов в массивах в Си и С++ начинается с нуля".
Yandex
Объявления
05.11.2016, 18:10     Неожиданное поведение программы: лишний виток цикла (найти и исправить ошибки в коде)
Ответ Создать тему
Опции темы

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