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

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

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

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

14.04.2011, 19:50. Просмотров 482. Ответов 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++ Почему цикл не заканчивается???
Почему распечатка не заканчивается одной строкой? C++
Почему цикл выполняется бесконечно? C++
C++ Почему не работает цикл for
Почему не останавливается цикл по требованию? C++
C++ Почему не выполняется цикл?
Цикл заканчивается не так, как задано в условии C++
C++ Почему не входит в цикл?
C++ не понимаю почему цикл не заканчивается
C++ Почему игнорируется цикл?
C++ Объяснить, почему не работает цикл
C++ Почему программа заканчивается?

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

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

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

Добавлено через 59 секунд
Почитайте про область видимости переменных.
nikitapel
 Аватар для 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++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 20:17     Цикл почему-то не заканчивается. #4
По первому посту:
Строка 16 - используется а, объявленная в строке 12 и инициализированная в строке 15.
Строка 20 - выводится а созданная в строке 18. Это СОВСЕМ ДРУГАЯ а.

Давайте переменным осмысленные имена.
Помимо a,i,k есть ещё многабукафф.
Игорь с++
 Аватар для Игорь с++
432 / 455 / 16
Регистрация: 26.01.2011
Сообщений: 2,031
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     Цикл почему-то не заканчивается.
Ответ Создать тему
Опции темы

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