| 
	
		
		
			| Не работает программа |  |  |  | 
| Диггер | Дата: Суббота, 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 |  |  |  |  |  
 |