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

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

Войти
Регистрация
Восстановить пароль
 
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
#1

Цикл почему-то не заканчивается. - C++

14.04.2011, 19:50. Просмотров 490. Ответов 4
Метки нет (Все метки)

Значит идея такая пока не сгенерируется число =2 цикл будет повторяться. Но когда число =2 цикл все равно не заканчивается. Подскажите почему?
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>
#include <windows.h>
#include<time.h>
#include <cstdlib>
#include <time.h>
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
using namespace std;
 
int main()
{
int a,i;
srand (clock()); 
i=0;
a=1;
while (a!=2) {
int a = rand()%3 + 1; // Случайное число.
cout<<a <<endl;
Sleep(0);
i=i+1; 
}
cout<<i <<endl;
system("Pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 19:50     Цикл почему-то не заканчивается.
Посмотрите здесь:

Почему цикл не заканчивается??? - C++
Всем добрый день! У меня здесь вопрос по циклу while. Вот программа по подсчёту букв и сочетаний в тексте: #include &lt;iostream&gt; ...

не понимаю почему цикл не заканчивается - C++
Привет! Вот написал. Объясните, пожалуйста, почему цикл не заканчивается? Функция должна считывать инфу и записывать в массив! Идеи по...

Цикл заканчивается не так, как задано в условии - C++
Здравствуйте! Есть задача: вычислить бесконечную сумму выражения 1+\frac{1}{1!}+\frac{1}{2!}+...+\frac{1}{n!} с точностью до \varepsilon =...

Почему программа заканчивается? - C++
Напишите программу, в которой функция fprintf() используется для создания файла инвентарной описи, содержащей сведения о наименовании...

Почему распечатка не заканчивается одной строкой? - C++
#include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int nNumberofArgs, char* pszArgs) { ...

Почему не заходит в цикл? - C++
Добрый день, почему у меня в режиме отладки &quot;не заходит&quot; в цикл, просто проскакивает его. Заранее спасибо. #include &lt;stdio.h&gt; ...

Почему не останавливается цикл по требованию? - C++
Здравствуйте! Интересует вопрос по теме. for (int i = 2; !flag; ++i) { if (cin.get() == 'q') flag...

Почему while не прекращает вложенный цикл? - C++
double test; while (test&lt;=500) { for (test=0; test&lt;=600; test +=1) cout &lt;&lt; &quot;Итерация №&quot; &lt;&lt; test &lt;&lt; &quot;\n&quot;; ...

Почему цикл выполняется бесконечно? - C++
Объясните кто-нибудь, почему этот код #include &lt;iostream&gt; #include &lt;cstdlib&gt; int main() { int array1; ...

Объяснить, почему не работает цикл - C++
Здравствуйте. Почему-то не работает цикл #include &lt;iostream&gt; using namespace std; int main() { double e = 1.13196e-72; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 19:54     Цикл почему-то не заканчивается. #2
а в условии цикла не изменяется.

Добавлено через 26 секунд
А вот а в строке 17 изменяется.

Добавлено через 59 секунд
Почитайте про область видимости переменных.
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
14.04.2011, 20:13  [ТС]     Цикл почему-то не заканчивается. #3
И как тогда сделать?

Добавлено через 17 минут
Так и не понял почему так не работает сделал так
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>
#include <windows.h>
#include<time.h>
#include <cstdlib>
#include <time.h>
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
using namespace std;
 
int main()
{
int a,i,k;
srand (clock()); 
i=0;
a=1;
k=1;
while (k!=2) {
int a = rand()%101 + 1; // Случайное число.
if (a==100) { k=2;}
cout<<a <<endl;
Sleep(0);
i=i+1; 
}
cout<<i <<endl;
system("Pause");
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 20:17     Цикл почему-то не заканчивается. #4
По первому посту:
Строка 16 - используется а, объявленная в строке 12 и инициализированная в строке 15.
Строка 20 - выводится а созданная в строке 18. Это СОВСЕМ ДРУГАЯ а.

Давайте переменным осмысленные имена.
Помимо a,i,k есть ещё многабукафф.
Игорь с++
433 / 456 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
14.04.2011, 20:24     Цикл почему-то не заканчивается. #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
#include <iostream>
#include <windows.h>
#include<time.h>
#include <cstdlib>
#include <time.h>
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
using namespace std;
 
int main()
{
int a,i;
srand (clock()); 
i=0;a=0;
do{
 a = rand()%3 + 1; // Ñëó÷Г*Г©Г*îå ÷èñëî.
cout<<a <<endl;
Sleep(70);
i=i+1; 
}while (a!=2);
cout<<i<<" "<<a <<endl;
system("Pause");
}
Yandex
Объявления
14.04.2011, 20:24     Цикл почему-то не заканчивается.
Ответ Создать тему
Опции темы

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