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

Оператор while - C++

Восстановить пароль Регистрация
 
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 11:04     Оператор while #1
Поскольку я еще начинающий, то задам такой вопрос:
В цикл while мне нужно поставить несколько условий, вот, что я пишу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
while (a1 = a2; a1 = a3; a1 = a4; a1 = a5; a1 = a6; a1 = a7; a1 = a8; a1 = a9)
    {
    a1 = rand() % 9;
    a2 = rand() % 9;
    a3 = rand() % 9;
    a4 = rand() % 9;
    a5 = rand() % 9;
    a6 = rand() % 9;
    a7 = rand() % 9;
    a8 = rand() % 9;
    a9 = rand() % 9;
    }
Пока a1 = a2; a1 = a3 и т.д. программа присваивает им рандом. Только я так понял нельзя в while столько условий ставить.. как сделать? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2013, 11:04     Оператор while
Посмотрите здесь:

оператор For C++
C++ оператор*=
C++ оператор if
C++ Оператор break как оператор go to next
C++ Оператор while
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Diemon
17 / 5 / 2
Регистрация: 13.09.2011
Сообщений: 24
02.01.2013, 11:25     Оператор while #2
Цитата Сообщение от M1ronz0r Посмотреть сообщение
Поскольку я еще начинающий, то задам такой вопрос:
В цикл while мне нужно поставить несколько условий, вот, что я пишу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
while (a1 = a2; a1 = a3; a1 = a4; a1 = a5; a1 = a6; a1 = a7; a1 = a8; a1 = a9)
    {
    a1 = rand() % 9;
    a2 = rand() % 9;
    a3 = rand() % 9;
    a4 = rand() % 9;
    a5 = rand() % 9;
    a6 = rand() % 9;
    a7 = rand() % 9;
    a8 = rand() % 9;
    a9 = rand() % 9;
    }
Пока a1 = a2; a1 = a3 и т.д. программа присваивает им рандом. Только я так понял нельзя в while столько условий ставить.. как сделать? Спасибо.
a1 == a2 || a1 == a3 || a1 == a4 || a1 == a5 || a1 == a6 || a1 == a7 || a1 == a8 || a1 == a9
//Пока одно из них не выполнится
a1 == a2 && a1 == a3 && a1 == a4 && a1 == a5 && a1 == a6 && a1 == a7 && a1 == a8 && a1 == a9
//Пока каждое из них не выполнится

Если вы хотите проверять условие "равно ли", то используйте "==", если не равно ли, то "!=".

Логический смысл while(a = b){...} //Выполнять цикл до тех пор, пока a равно b
Логический смысл && - логическое "И", || - логическое "ИЛИ"
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:27     Оператор while #3
C++
1
while (a1 == a2 && a1 == a3 && a1 == a4 && a1 == a5 && a1 == a6 && a1 == a7 && a1 == a8 && a1 == a9)
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 11:33  [ТС]     Оператор while #4
c:\users\павел\documents\visual studio 2008\projects\sudoky\sudoky\main.cpp(36) : error C2784: std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &): не удалось вывести аргумент шаблон для "std::basic_istream<char,_Traits> &" из "std::basic_ostream<_Elem,_Traits>"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> g:\programms\mvc++\vc\include\istream(1021): см. объявление 'std::operator >>'
1>c:\users\павел\documents\visual studio 2008\projects\sudoky\sudoky\main.cpp(36) : error C2784: std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &): не удалось вывести аргумент шаблон для "std::basic_istream<char,_Traits> &" из "std::basic_ostream<_Elem,_Traits>"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> g:\programms\mvc++\vc\include\istream(1021): см. объявление 'std::operator >>'

100 ошибок.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:46     Оператор while #5
M1ronz0r, Покажите всю программу
Или хотя бы часть, где эти ошибки появляются
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 11:51  [ТС]     Оператор while #6
Код набрасывал (программа плоская), не пугайтесь
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
#include<iostream>
using namespace std;
int main()
{
    int a1;
    int a2;
    int a3;
    int a4;
    int a5;
    int a6;
    int a7;
    int a8;
    int a9;
    a1 = rand() % 9;
    a2 = rand() % 9;
    a3 = rand() % 9;
    a4 = rand() % 9;
    a5 = rand() % 9;
    a6 = rand() % 9;
    a7 = rand() % 9;
    a8 = rand() % 9;
    a9 = rand() % 9;
    while (a1 == a2 && a1 == a3 && a1 == a4 && a1 == a5 && a1 == a6 && a1 == a7 && a1 == a8 && a1 == a9)
    {
    a1 = rand() % 9;
    a2 = rand() % 9;
    a3 = rand() % 9;
    a4 = rand() % 9;
    a5 = rand() % 9;
    a6 = rand() % 9;
    a7 = rand() % 9;
    a8 = rand() % 9;
    a9 = rand() % 9;
    }
    cout << a1 >> endl;
    cout << a2 >> endl;
    cout << a3 >> endl;
    cout << a4 >> endl;
    cout << a5 >> endl;
    cout << a6 >> endl;
    cout << a7 >> endl;
    cout << a8 >> endl;
    cout << a9 >> endl;
}
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:53     Оператор while #7
Все понятно
Посмотрите повнимательней на строчки 35 - 43

вот так правильно:
C++
1
cout << a1 << endl;
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 12:00  [ТС]     Оператор while #8
балбес я
у меня там рандом стоит до 9. т.е. 0 - 9. нужно 1-9. как сделать?)
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 12:07     Оператор while #9
C++
1
a1 = 1 + rand() % 9;    // случайное число от 1 до 9
Добавлено через 1 минуту
Цитата Сообщение от M1ronz0r Посмотреть сообщение
у меня там рандом стоит до 9
Нет, до 8
C++
1
a1 = rand() % 9;  // случайное число от 0 до 8
0x10
02.01.2013, 13:01
  #10

Не по теме:

Массивы не используются из принципа?

vadimmelnyk
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 13
02.01.2013, 13:27     Оператор while #11
Можно проще сделать, чтобы не было столько проверок в цикле.

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
#include<iostream>
using namespace std;
int main()
{
    int a1, a2, a3, a4, a5, a6, a7, a8, a9;
    int sum=0;
    do {
    a1 = rand() % 9;
    a2 = rand() % 9;
    a3 = rand() % 9;
    a4 = rand() % 9;
    a5 = rand() % 9;
    a6 = rand() % 9;
    a7 = rand() % 9;
    a8 = rand() % 9;
    a9 = rand() % 9;
    sum = (a1+a2+a3+a4+a5+a6+a7+a8+a9)/9;
    }
    while (a1==sum);
    cout << a1<<endl;
    cout << a2<<endl;
    cout << a3<<endl;
    cout << a4<<endl;
    cout << a5<<endl;
    cout << a6<<endl;
    cout << a7<<endl;
    cout << a8<<endl;
    cout << a9<<endl;
}
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 18:51  [ТС]     Оператор while #12
вообщем вроде все норм, но почему-то не выводит различные цифры. почему-то не выводит тройку, а 8 выводит два раза
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
#include<iostream>
using namespace std;
int main()
{
    int a1;
    int a2;
    int a3;
    int a4;
    int a5;
    int a6;
    int a7;
    int a8;
    int a9;
    a1 = 1 + rand() % 9;
    a2 = 1 + rand() % 9;
    a3 = 1 + rand() % 9;
    a4 = 1 + rand() % 9;
    a5 = 1 + rand() % 9;
    a6 = 1 + rand() % 9;
    a7 = 1 + rand() % 9;
    a8 = 1 + rand() % 9;
    a9 = 1 + rand() % 9;
    while (a1 == a2 && a1 == a3 && a1 == a4 && a1 == a5 && a1 == a6 && a1 == a7 && a1 == a8 && a1 == a9 && a2 == a3 && a2 == a4 && a2 == a5 && a2 == a6 && a2 == a7 && a2 == a8 && a2 == a9 && a3 == a4 && a3 == a5 && a3 == a6 && a3 == a7 && a3 == a8 && a3 == a9 && a4 == a5 && a4 == a6 && a4 == a7 && a4 == a8 && a4 == a9 && a5 == a6 && a5 == a7 && a5 == a8 && a5 == a9 && a6 == a7 && a6 == a8 && a6 == a9 && a7 == a8 && a7 == a9 && a8 == a9)
    {
    a1 = 1 + rand() % 9;
    a2 = 1 + rand() % 9;
    a3 = 1 + rand() % 9;
    a4 = 1 + rand() % 9;
    a5 = 1 + rand() % 9;
    a6 = 1 + rand() % 9;
    a7 = 1 + rand() % 9;
    a8 = 1 + rand() % 9;
    a9 = 1 + rand() % 9;
    }
    cout << a1 << endl;
    cout << a2 << endl;
    cout << a3 << endl;
    cout << a4 << endl;
    cout << a5 << endl;
    cout << a6 << endl;
    cout << a7 << endl;
    cout << a8 << endl;
    cout << a9 << endl;
}
PS извиняюсь, но нужно было иисчезнуть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2013, 19:32     Оператор while
Еще ссылки по теме:

C++ Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
C++ В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?

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

Или воспользуйтесь поиском по форуму:
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 19:32     Оператор while #13
А тут чтобы все цифры были различные то тогда надо немного условие изменить
Вместо && везде поставить ||
C++
1
while (a1==a2 || a1==a3 || a1==a4 ...)
Yandex
Объявления
02.01.2013, 19:32     Оператор while
Ответ Создать тему
Опции темы

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