Не работает программа
| |
Диггер | Дата: Суббота, 31 Мая 2014, 00:00 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Здравствуйте! Помогите пожалуйста с программой. Почему-то после ввода числа ничего не происходит. Компилятор - Bloodshed C++ ошибок не нашёл. Пробовал меня символ в IF с == на = не помогает. Пробовал делать без функций - то же самое. Вот теперь обращаюсь к вам, дорогие программисты. Заранее спасибо! Код #include <iostream> using namespace std; /*Функции*/ //Окно отчетов int oknoOtchetov(int ivoiskaPehota, int ivoiskaKovaleriya, int ieda, int ivoda, int ireputaciya, int ipushki, int igelezo, int ikazna){ cout << "Пехотные войска: " << ivoiskaPehota << " человек \n"; cout << "Ковалерия: " << ivoiskaKovaleriya << " единиц \n"; cout << "Количество еды: " << ieda << "\n"; cout << "Репутация у жителей: " << ireputaciya << "\n"; cout << "Количество пушек: " << ipushki << "\n"; cout << "Количество железа: " << igelezo << "\n"; cout << "Денег в казне: " << ikazna << "\n"; } //Окно разведки int oknoRazvedki(int ivoiskaPehotaProtivnika, int ivoiskaKovaleriyaProtivnika){ cout << "Пехота противника: " << ivoiskaPehotaProtivnika << "\n"; cout << "Ковалерия противника: " << ivoiskaKovaleriyaProtivnika << "\n"; } /*************************************Сама игра*****************************************/ int main(){ setlocale(LC_ALL, "Russian"); /*Все переменные игры*/ int ivoiskaPehota, ivoiskaKovaleriya, ieda, ivoda, ireputaciya, ipushki, igelezo, ikazna; int ivoiskaPehotaProtivnika, ivoiskaKovaleriyaProtivnika; char cGMI; /*Главное меню игры - GMI*/ cout << "На наш замок напали, генерал! Что будем делать? \n"; cout << "1.Посмотреть отчеты. \n" << "2.Посмотреть данные о разведке. \n"; cout << "3.Напасть на врага у главных ворот.\n" << "4.Собрать все железо у крестьян и... \n"; cout << "5.Использовать казну на... \n" << "6.Отправить послов к врагу \n"; cout << "7.Сдать город. \n" << "8.Вооружить всех крестьян. \n"; cin >> cGMI; /*Действия в игре*/ if(cGMI == 1) int oknoOtchetov; system("pause"); return 0; }
Сообщение отредактировал Диггер - Суббота, 31 Мая 2014, 00:00 |
|
| |
Saitei | Дата: Суббота, 31 Мая 2014, 00:05 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| int oknoOtchetov(int ivoiskaPehota, int ivoiskaKovaleriya, int ieda, int ivoda, int ireputaciya, int ipushki, int igelezo, int ikazna){ cout << "Пехотные войска: " << ivoiskaPehota << " человек \n"; cout << "Ковалерия: " << ivoiskaKovaleriya << " единиц \n"; cout << "Количество еды: " << ieda << "\n"; cout << "Репутация у жителей: " << ireputaciya << "\n"; cout << "Количество пушек: " << ipushki << "\n"; cout << "Количество железа: " << igelezo << "\n"; cout << "Денег в казне: " << ikazna << "\n"; }
и у прочих функций нет return. Меняй на void
|
|
| |
Диггер | Дата: Суббота, 31 Мая 2014, 00:07 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Цитата Saitei ( ) и у прочих функций нет return. Меняй на void Да я ставил return. Не помогло. Сейчас изменил тип на void тоже нет.
|
|
| |
morglodddd | Дата: Суббота, 31 Мая 2014, 03:43 | Сообщение # 4 |
участник
Сейчас нет на сайте
| У тебя нигде не вызываются функции oknoOtchetov и oknoRazvedki. Иди учи и не ленись
int oknoOtchetov; это не вызов, а объявление переменной
|
|
| |
Диггер | Дата: Воскресенье, 01 Июня 2014, 19:24 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата morglodddd ( ) У тебя нигде не вызываются функции oknoOtchetov и oknoRazvedki. Иди учи и не ленись
int oknoOtchetov; это не вызов, а объявление переменной Я пробовал делать и без функций, пробовал вставлять после if cout, но все-равно ничего не работает.
Добавлено (01.06.2014, 19:24) --------------------------------------------- Проблема решена! Код #include <iostream> #include <windows.h> using namespace std;
int main(){ setlocale(LC_ALL, "Russian"); /*Все переменные игры*/ int cavalry, infantry, bowman, catapult, reputacion, food, treasury, iron, water, morale; int cavalry_enemy, infantry_enemy, catapult_enemy, food_enemy; int main_game_menu; /*Главное меню игры. Main game menu.*/ cout << "Генерал, на наш замок напали! Что будем делать? \n"; cout << "1. Посмотерть отчеты. \n" << "2.Посмотреть отчеты о произведенной разведке. \n"; cout << "3. Посмотреть казну... \n" << "4. Собрать у жителей все железо и... \n"; cout << "5. Напасть на врагов возле главных ворот. \n" << "6. Приказать лучникам... \n"; cout << "7. Вооружить всех жителей. \n" << "8. Приказать катапультистам... \n"; cout << "9. Отправить посла к врагу. \n" << "10. Сдать замок. \n\n"; /*Действия игрока*/ cin >> main_game_menu; if (main_game_menu == 1){ /*Окно отчетов*/ cout << "Пехота: " << infantry << " человек. \n"; cout << "Кавалерия: "<< cavalry <<" единиц. \n"; cout << "Лучники: " << bowman << " человек. \n"; cout << "Катапульты: " << catapult << " единиц. \n"; cout << "Репутация: " << reputacion << " единиц. \n"; cout << "Еда: " << food << " единиц. \n"; cout << "Железо: " << iron << " единиц. \n"; cout << "Вода: " << water << " единиц. \n"; cout << "Мораль: " << morale << " единиц. \n"; } system("Pause"); return 0; } Всем спасибо за ответы! Тему можно закрывать!
Сообщение отредактировал Диггер - Воскресенье, 01 Июня 2014, 19:24 |
|
| |
Xakep | Дата: Воскресенье, 01 Июня 2014, 19:47 | Сообщение # 6 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Цитата Диггер ( ) char cGMI; Цитата Диггер ( ) if (cGMI == 1) тут просто нужно было сменить на такое условие: потому-что cin воспринимает переменную char как символьную, следовательно нужно сравнивать введенные символы, а не введенную цифру.Добавлено (01.06.2014, 19:47) ---------------------------------------------
Цитата Диггер ( ) Пробовал меня символ в IF с == на = не если в условие подставить if (c = 1) то программа присвоит значение переменной, а не сравнит ее.
Сообщение отредактировал Xakep - Воскресенье, 01 Июня 2014, 19:46 |
|
| |
|