Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11

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

02.08.2013, 13:41. Показов 2011. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2013, 13:41
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

Не по теме:

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

0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
02.08.2013, 15:05
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Вообще-то было написано
C++
1
if(shop=!shop)
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
02.08.2013, 15:12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Вообще-то было написано
Да. С подписью, что это проверка на то, что
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Если она [shop] равна !shop
Вот я и говорю, что проверка на равность shop и не shop выглядела бы как
C++
1
if(shop==!shop)
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
Так а я о чем?
1
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
02.08.2013, 15:13
Зря мы наехали на "SatanaXIII, проблема в сообщении 7, а он привел аргумент "от противного".

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

Не по теме:

:facepalm:

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

else можно либо поставить после нее, либо убрать ';' после if() (скорее всего, 2-й вариант).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2013, 15:37
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru