0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
1

Не могу справиться с if!

02.08.2013, 13:41. Показов 1540. Ответов 28
Метки нет (Все метки)

Вот код:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream.h>
#include <stdio.h>
int main()
{
 using namespace std; 
 
 string name;
 cout << "Type name:      ";
 cin >> name;
 
 int life;
 int damage;
 int mana;
 
 int klas;
 cout << "Choose your class: 1 - witcher, 2 - warior, 3 - shooter   ";
 cin >> klas;
 
switch (klas)
{ 
      case 1:
           life = 100;
           damage = 10;
           mana = 150;
           cout << "Your name is " << name << "\n";
           cout << "Your class is witcher  \n";
           cout << "Your life is   " << life << " now. You can upgrade it\n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have " << mana << " mana! It`s really more!\n";
      break;
      case 2:
           life = 160;
           damage = 14;
           mana = 0;
           cout << "Your name is " << name << "\n";
           cout << "Your class is warrior \n";
           cout << "Your life is   " << life << " now. You can upgrade it\n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have no mana, becose you are warrior, yeah. Discrimination.\n";
      break;
      case 3:
           life = 50;
           damage = 20;
           mana = 10;
           cout << "Your name is " << name << "\n";
           cout << "Your class is shooter \n";
           cout << "Your life is   " << life << " now. You can upgrade it \n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have " << mana << " mana! You have mana! It`s cool!\n";
}
int gnomtown;
int elftown;
int orktown;
 
int goo;
cout << "Where you want to go? 1 - to gnomes, 2 - to elftown, 3 - to orktown     ";
cin >> goo;
switch (goo)
{
       case 1:
            cout << "You are in Gnomes Town now! You can repair your armor!"<< endl;
       break;
       case 2:
            cout << "You are in Elfs Town now! You can buy weapon here!"<< endl;
            cout << "Type !shop for shopping!"<< endl;
                int shop;
                cin >> shop;
    if (shop=!shop);
     {
                    cout << "What are you want? Maybe, you want to buy Legendary Sword?" << endl;
                    int buy;
                    cout << "1 - to buy sword, 2 - for bow, 3 - for sniper rifle" << endl;
                    cin >> buy;
                                 switch (buy)
                                 {
                                 case 1:
                                       damage = 17;
                                       cout << "Your damage is 14 + 3 now"<< endl;
                                 break;                                 
                                       
                                 case 2:
                                       damage = 15;
                                       cout << "Your damage is 14 + 1 now"<< endl;
                                 break;
                                 case 3:
                                      if (klas = 2)
                                       {
                                               cout << "You can`t buy this item, becouse you are warrior. Dicramination!"<< endl;
                                               }
                                               else
                                               {
                                                   cout << "Your damage is 20 + 6 now! You are dangerous!"<< endl;
                                               }
                                       }
                    }
 
       break;
       case 3:
            life -= 44;
            cout << "Orks hate you and want to kill you. Run away!\n ";
            cout << "You was damaged. Your health for now  " << life << "\n";
            break;
}
system("pause");
return 0;
}
После if (shop=!shop) должен следовать else. Но как я не пытаюсь его поставить после switch у меня ничего не выходит. Помогите пожалуйста!
P.S. Если можно, объясните наследование, как его правильно сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2013, 13:41
Ответы с готовыми решениями:

Не могу справиться с функцией с++ istringstream
В общем, изначальный код был таков: #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include &lt;conio.h&gt;...

не могу справиться с программами (они несложные)
Парни, от меня в универе требуют к четвергу написать проги на C++, я написала около 9, осталось...

Не могу справиться с 3 задачами из курсовой. Напишите, если не сложно
№13,94,53.

не могу справиться задачкой в С++. У кого светлая голова напишите пожалуйста
Задан массив, состоящий из 10 элементов. Из положительных элементов извлечь квадратный корень,...

28
Evg
Эксперт CАвтор FAQ
21265 / 8281 / 637
Регистрация: 30.03.2009
Сообщений: 22,638
Записей в блоге: 30
02.08.2013, 13:47 2
У тебя для ненаписанного else закрывающей скобки нет. На 95-й строке закрывающая скобка в паре к 75-й строке. После неё надо поставить ещё одну фигурную скобку в пару к 69-й строке. Если бы не ленился и аккуратно форматировал текст, то сразу бы сам всё увидел
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
02.08.2013, 13:58 3
Цитата Сообщение от Darell_ldark Посмотреть сообщение
C++
1
if (shop=!shop)
по-моему данный условный оператор не несет никакой пользы, ибо условие всегда не выполняется
0
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 16
02.08.2013, 13:58 4
Цитата Сообщение от Darell_ldark Посмотреть сообщение
if (shop=!shop);
Объясните, пожалуйста, что должна делать данная строчка? Мне кажется, что она вообще ничего не делает, т.к. завершена ; и все равно что там внутри. Кроме того, я не поняла что значит shop=!shop? Вы пытаетесь переназначить переменную? Или это должно значить не равно?
А после switch у тебя и не получится поставить else.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
02.08.2013, 14:08 5
Цитата Сообщение от aLarman Посмотреть сообщение
условие всегда не выполняется
А вот и дудки. )
Конструкция
C++
1
2
cin >> shop;
if(shop!=shop)
Считали shop. Если shop сначала присвоили shop значение не shop, потом проверили. И если введенный shop был не ноль, тогда присвоится ему же значение нуля и проверится условие. Соответственно если введен ноль, то условие выполнится. Иначе не выполнится.

Добавлено через 1 минуту
Цитата Сообщение от Nastik-kum Посмотреть сообщение
завершена ; и все равно что там внутри
Это так и есть.
0
Evg
Эксперт CАвтор FAQ
21265 / 8281 / 637
Регистрация: 30.03.2009
Сообщений: 22,638
Записей в блоге: 30
02.08.2013, 14:14 6
Цитата Сообщение от Nastik-kum Посмотреть сообщение
Мне кажется, что она вообще ничего не делает, т.к. завершена
Он же написал, что после этого должны быть else. Т.е. он хочет написать

C
if (shop=!shop);
else {
  ...
}
но не может и просит помощи
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
02.08.2013, 14:15  [ТС] 7
Nastik-kum, по идее, это идет проверка значения переменной shop. Если она равна !shop, то делает то и то.

Добавлено через 24 секунды
Evg, да. Мне надо поправить скобки и тогда все заработает?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
02.08.2013, 14:31 8
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Если она равна !shop
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
0
Evg
Эксперт CАвтор FAQ
21265 / 8281 / 637
Регистрация: 30.03.2009
Сообщений: 22,638
Записей в блоге: 30
02.08.2013, 14:42 9
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Nastik-kum, по идее, это идет проверка значения переменной shop. Если она равна !shop, то делает то и то
Как правильно писать такую проверку, написали в посте #8. При каких значениях, на твой взгляд, такая проверка сработает?

Цитата Сообщение от Darell_ldark Посмотреть сообщение
Evg, да. Мне надо поправить скобки и тогда все заработает?
Всё заработает, или не всё - я не знаю. Но конкретно ту ошибку, о который ты писал, скобка вылечит
0
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,064
Записей в блоге: 1
02.08.2013, 14:43 10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Там не так, а
C++
1
if(shop=!shop)
В скобках не сравнение, а присвоение. Результат такой как:
C++
1
2
shop=!shop;
if(shop)...
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
02.08.2013, 14:51 11
Цитата Сообщение от zer0mail Посмотреть сообщение
Там не так
Я как раз об этом же.

Не по теме:

И вообще они что-то без нас обсуждают. Так что мы не в тему. Х)

0
4004 / 3266 / 914
Регистрация: 25.03.2012
Сообщений: 12,199
Записей в блоге: 1
02.08.2013, 15:05 12
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Вообще-то было написано
C++
1
if(shop=!shop)
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
02.08.2013, 15:12 13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Вообще-то было написано
Да. С подписью, что это проверка на то, что
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Если она [shop] равна !shop
Вот я и говорю, что проверка на равность shop и не shop выглядела бы как
C++
1
if(shop==!shop)
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
Так а я о чем?
1
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,064
Записей в блоге: 1
02.08.2013, 15:13 14
Зря мы наехали на "SatanaXIII, проблема в сообщении 7, а он привел аргумент "от противного".

Пока это писал, он сам разъяснил.
1
4004 / 3266 / 914
Регистрация: 25.03.2012
Сообщений: 12,199
Записей в блоге: 1
02.08.2013, 15:18 15
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вот я и говорю, что проверка на равность shop и не shop выглядела бы как
Код C++
1
if(shop==!shop)
но это вообще бесполезная проверка. которая никогда не выполнится. Скорее всего имелось в виду всё же первое.
0
73 / 73 / 18
Регистрация: 29.11.2011
Сообщений: 356
02.08.2013, 15:25 16
Всё чётко в условии, кому не нравится - изучите разницу операторов "=" и "==". Если не прояснилось, погоняйте в отладчике.
1
SatanaXIII
02.08.2013, 15:32
  #17

Не по теме:

:facepalm:

0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
02.08.2013, 15:35  [ТС] 18
Эм... Ну я хотел, чтобы было так: если переменная shop равна !shop, то выполняются условия, если нет, то идут другие действия. Как я понял, это вообще неправильно.
0
73 / 73 / 18
Регистрация: 29.11.2011
Сообщений: 356
02.08.2013, 15:36 19
Ну если так, то да, неправильно xD
0
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,064
Записей в блоге: 1
02.08.2013, 15:37 20
Цитата Сообщение от Darell_ldark Посмотреть сообщение
После if (shop=!shop) должен следовать else. Но как я не пытаюсь его поставить после switch у меня ничего не выходит. Помогите пожалуйста!
P.S. Если можно, объясните наследование, как его правильно сделать.
Разве четко? Если "Да", то как одновременно поставить else после if и switch, учитывая, что сразу за if() стоит ';' ?

else можно либо поставить после нее, либо убрать ';' после if() (скорее всего, 2-й вариант).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2013, 15:37
Помогаю со студенческими работами здесь

Не могу справиться с задачей: "по какому предмету у студента с заданным номером в журнале лучшая оценка по итогам сессии?"!
Задача выглядит так: &quot;по какому предмету у студента с заданным номером в журнале лучшая оценка по...

Не могу справиться

Не могу справиться с ДУ
Не могу победить ДУ Y’-(1/X+1)*Y=E^X*(X+1)

Не могу справиться
Я понимаю что таких много, но все же. Помогите с решением. Раз иначе вам невдомек, то говорю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru