Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
#1

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

02.01.2013, 11:04. Просмотров 901. Ответов 12
Метки нет (Все метки)

Поскольку я еще начинающий, то задам такой вопрос:
В цикл 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 столько условий ставить.. как сделать? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2013, 11:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор while (C++):

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? - C++
#include <iostream> using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...

12
Diemon
17 / 5 / 2
Регистрация: 13.09.2011
Сообщений: 24
02.01.2013, 11:25 #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
Логический смысл && - логическое "И", || - логическое "ИЛИ"
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:27 #3
C++
1
while (a1 == a2 && a1 == a3 && a1 == a4 && a1 == a5 && a1 == a6 && a1 == a7 && a1 == a8 && a1 == a9)
0
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 11:33  [ТС] #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 ошибок.
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:46 #5
M1ronz0r, Покажите всю программу
Или хотя бы часть, где эти ошибки появляются
0
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 11:51  [ТС] #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;
}
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 11:53 #7
Все понятно
Посмотрите повнимательней на строчки 35 - 43

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

Не по теме:

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

0
vadimmelnyk
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 13
02.01.2013, 13:27 #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;
}
0
M1ronz0r
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 69
02.01.2013, 18:51  [ТС] #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 извиняюсь, но нужно было иисчезнуть
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.01.2013, 19:32 #13
А тут чтобы все цифры были различные то тогда надо немного условие изменить
Вместо && везде поставить ||
C++
1
while (a1==a2 || a1==a3 || a1==a4 ...)
1
02.01.2013, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2013, 19:32
Привет! Вот еще темы с ответами:

Как перегрузить оператор<< и оператор>> ? - C++
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы их решить. вопрос первый. В общем...

Оператор break как оператор go to next - C++
Подскажите, в этом примере break эквивалентна действию оператора go to next?

В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор? - C++
(C++ Builder XE5)

оператор if - C++
В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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