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

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

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

Оператор условия - C++

29.11.2012, 20:41. Просмотров 650. Ответов 19
Метки нет (Все метки)

Есть массив в нём есть 10 элементов(например цифр 1). Например я могу изменять любой элемент массива на 0. Как мне прописать, что бы при наличии у элементов массива №1, №2, №3 значения равного 0, происходил например вывод на экран какого-либо сообщения или выполнение действия?
Конструкция
C++
1
2
3
4
if(Arr[0]==Arr[1]==Arr[2])
{
....
}
-не катит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 20:41     Оператор условия
Посмотрите здесь:

оператор условия if - C++
я написал программу: #include<iostream.h> void main(void) { int test; cout<<"test="; cin>>test; if(test>=90) ...

Оператор условия - C++
Можете помочь с оператором условия надо сделать чтобы он писал всех тех людей кому старше 62 в 3 пункте. 1)Имя 2)Фамилия 3)День...

Оператор условия в C++ - C++
Не как не могу написать программу по данной задаче(вложение)

оператор условия if. - C++
Я написал программу: #include<iostream.h> void main(void) { int test=95; if(test>=90) cout<<"Exelent!"<<endl; else; ...

Оператор условия. Определить, пересекаются ли заданные кривая и прямая - C++
Определить пересекаются ли кривая y=ax³+bx²+cx+d и прямая y=fx+g. При положительном ответе найти точку пересечения. Что не...

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

Условия If - C++
Привет, сразу прошу прощения за глупый вопрос но я только начинающий программист и поэтому я не знаю как реализовать мою идею, но я уверен...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.11.2012, 20:44     Оператор условия #2
Цитата Сообщение от azeriker Посмотреть сообщение
if(Arr[0]==Arr[1]==Arr[2])
{
....
}
Во- первых,
C++
1
2
3
4
if(Arr[0]==Arr[1] && Arr[1]==Arr[2])
{
....
}
Во-вторых, твой код тоже скомпилируется, но будет работать только, если все 3 числа равны 1. Угадай почему.
azeriker
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 12
29.11.2012, 20:55  [ТС]     Оператор условия #3
Если сделать так, то в цикле при проверки на верность, я могу ведь изменить другой элемент массива и тогда первые три окажутся равными и произойдёт то, что мне не нужно...
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.11.2012, 21:25     Оператор условия #4
Цитата Сообщение от azeriker Посмотреть сообщение
Если сделать так, то в цикле при проверки на верность, я могу ведь изменить другой элемент массива и тогда первые три окажутся равными и произойдёт то, что мне не нужно...
Я тебя совершенно не понял. Тебе трудно писать?
Что тебе не нужно? Покажи пример.
azeriker
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 12
30.11.2012, 05:28  [ТС]     Оператор условия #5
Я пишу сейчас крестики-нолики и практически всё готово, это моя первая более-менее серьёзная работа. Мне осталось добавить только проверку на победу. Я конечно понимаю что этот проект не о чём, но я пишу для себя. Всё поле у меня представляет собой одномерный символьный массив размером в 9, и мне нужна проверка, но я не понимаю как реализовать её покороче
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
30.11.2012, 06:21     Оператор условия #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Во-вторых, твой код тоже скомпилируется, но будет работать только, если все 3 числа равны 1. Угадай почему.
фигвам(индейская национальная хижина)

Цитата Сообщение от azeriker Посмотреть сообщение
if(Arr[0]==Arr[1]==Arr[2])
0 1 2
0 0 1 сработает
0 1 0 сработает
1 0 0 сработает

объяснить почему ?

Добавлено через 8 минут
Цитата Сообщение от azeriker Посмотреть сообщение
Как мне прописать, что бы при наличии у элементов массива №1, №2, №3 значения равного 0
можно так
C++
1
if(!Arr[0] && !Arr[1] && !Arr[2])
А можно так
C++
1
if(!(Arr[0] || Arr[1] || Arr[2]))
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
30.11.2012, 09:20     Оператор условия #7
Цитата Сообщение от ValeryS Посмотреть сообщение
0 0 1 сработает
0 1 0 сработает
1 0 0 сработает
почему ты это называешь сработает, если это очевидно ошибка и автору нужно чтобы код срабатывал следующим образом:если 3 числа равны - заходил в if, иначе заходил в else.
А в твоём примере он не работает, т.к. заходит в if даже если числа не равны друг другу!
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
30.11.2012, 09:30     Оператор условия #8
----------------удалил----------------
azeriker
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 12
30.11.2012, 10:08  [ТС]     Оператор условия #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
2
3
4
if(Arr[0]==Arr[1] && Arr[1]==Arr[2])
{
....
}
к твоему коду пришлось добавить && Arr[1]!='-'
т.к изначально все имеют значения '-'
теперь вроде всё нормально, спс
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
30.11.2012, 10:21     Оператор условия #10
Цитата Сообщение от azeriker Посмотреть сообщение
к твоему коду пришлось добавить && Arr[1]!='-'
т.к изначально все имеют значения '-'
теперь вроде всё нормально, спс
ты о чём вообще? какие значения? Что значит "изначально"? Ты даже программу здесь не выложил! я не понимаю, о чём ты говоришь и при чём здесь '-'
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
30.11.2012, 12:48     Оператор условия #11
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
почему ты это называешь сработает,
это я отвечал тебе на
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
твой код тоже скомпилируется, но будет работать только, если все 3 числа равны 1.
т.е ты сказал что if сработает если все три переменные равны 1
я тебе показал еще три условия когда сработает if

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
если 3 числа равны - заходил в if, иначе заходил в else.
ему надо не просто что они равны а равны 0

Цитата Сообщение от azeriker Посмотреть сообщение
Как мне прописать, что бы при наличии у элементов массива №1, №2, №3 значения равного 0,
если он конечно опять не передумал
Цитата Сообщение от azeriker Посмотреть сообщение
к твоему коду пришлось добавить && Arr[1]!='-'
т.к изначально все имеют значения '-'
видишь какие то минусы появились
хотя изначально
Цитата Сообщение от azeriker Посмотреть сообщение
Есть массив в нём есть 10 элементов(например цифр 1). Например я могу изменять любой элемент массива на 0.
никакими минусами не пахло

на равенство 0 всех трех переменных я ему привел даже 2 примера

Цитата Сообщение от ValeryS Посмотреть сообщение
можно так
C++
1
if(!Arr[0] && !Arr[1] && !Arr[2])
А можно так Код
C++
1
if(!(Arr[0] || Arr[1] || Arr[2]))
но он как то это проигнорировал
azeriker
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 12
30.11.2012, 12:55  [ТС]     Оператор условия #12
Короче ребята вот весь код, он конечно написан не очень красиво. А про единицы и ноли-это я просто хотел немного абстрактно объяснить, а потом не заметно для себя перешёл на свой код
Со строки 40 начинается то про что я спрашивал
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string>
using namespace std;
char Pole[9]={'-','-','-','-','-','-','-','-','-'};
char point;
bool Errorr=false, win=false;
int Tar, TarSl;
int T=0, MainT=0, PrT=0 ;
class Game
{
      public:
             void Go()
             {
                  
             cin>>Tar;
              if(Pole[Tar-1]!='-')
              {
                cout<<"3DECb 3AH9TO!!"<<endl;
              }
              else if(Pole[Tar-1]=='-')
              {
                  if(MainT%2==0)
                       Pole[Tar-1]='X';
                  if(MainT%2==1)
                   Pole[Tar-1]='O';
              }
             };
            void VvP()
             {
                 cout<<"|_"<<Pole[6]<<"_|_"<<Pole[7]<<"_|_"<<Pole[8]<<"_|"<<"                   |_7_|_8_|_9_|      "<<endl;
                 cout<<"|_"<<Pole[3]<<"_|_"<<Pole[4]<<"_|_"<<Pole[5]<<"_|"<<"  O6PA3EU, --->    |_4_|_5_|_6_|      "<<endl;
                 cout<<"|_"<<Pole[0]<<"_|_"<<Pole[1]<<"_|_"<<Pole[2]<<"_|"<<"                   |_1_|_2_|_3_|      "<<endl; 
             }
             void Error()
             {
                 system ("cls");
             };
            void Proverka()
             {
                 for(PrT=0;PrT>-1;PrT++)
                  if(Pole[0]==Pole[1] && Pole[1]==Pole[2] && Pole[1]!='-')
                  {
                                               cout<<"POBEDA  "<<Pole[1]<<endl;
                                               win=true;
                  }
             }
             
                     
};
int main()
{
    Game Player;
    for (MainT=1;MainT>0; MainT++)
    {
        if(MainT%2==0)
            cout<<"XOD KPESTIKA"<<endl;
        if(MainT%2==1)
            cout<<"XOD NOLIKA"<<endl;
        Player.Go();
        Player.VvP();
        Player.Proverka();
        if(win==true)
        {
                     cout<<"U HAC ECTb POBEDITEL"<<endl;
                     getch();
                     break;
        };     
      cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;
        
    }
}
думаю разберётесь
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
30.11.2012, 12:58     Оператор условия #13
Цитата Сообщение от ValeryS Посмотреть сообщение
т.е ты сказал что if сработает если все три переменные равны 1
я тебе показал еще три условия когда сработает if
да, но я сказал, при этих условиях код работать не будет, а не if
т.к. будет выдавать сообщение "3 числа равны" в ответ на неравные числа. Это я тоже называю
Цитата Сообщение от ValeryS Посмотреть сообщение
код тоже скомпилируется, но будет не работать
Т.к. отвечать "3 числа равны" в ответ на 0 0 1 - это неверная работа
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
30.11.2012, 13:03     Оператор условия #14
Цитата Сообщение от azeriker Посмотреть сообщение
for (MainT=1;MainT>0; MainT++)
цикл то вечен(или почти вечен окончится после 2147483646 итерации)
ты точно этого хотел???

Добавлено через 2 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
при этих условиях программа работать не будет,
я это называю будет работать неправильно
извини, не понял твою терминологию
претензии снимаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 13:05     Оператор условия
Еще ссылки по теме:

3 условия - C++
помогите составить программу для решения системы уравнений задание: y=1-sqrt(2/x^5+1), при x&gt;0 y=log(abs(x-3)+abs(x+1)), при x&lt;0 ...

Условия if - C++
Компилятор выдает ошибки: miplased else, expression syntax, missing ;. Не могу разобраться что не так в условиях... if...

Условия с++ - C++
Здравствуйте! Нужно решить то, что во вложении ниже. Можете подсказать принцип решения? Или рассказать с чего начать?

условия - C++
скажите все ли я условия учёл ? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main(void) ...

условия с++ - C++
помогите составить правильное условие не проходимости стены змейкой if(next.X &lt; 3 || next.Y &lt; 3 || next.X &gt; 75 || next.Y &gt; 23) ...


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

Или воспользуйтесь поиском по форуму:
azeriker
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 12
30.11.2012, 13:05  [ТС]     Оператор условия #15
пока мне это и нужно, но потом я хочу чтобы при выигрыше можно было сделать рестарт и при заполнении всех клеток тоже рестарт, а выйти и крестиком можно
Yandex
Объявления
30.11.2012, 13:05     Оператор условия
Ответ Создать тему
Опции темы

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