Четверг, 20 Февраля 2020, 05:47

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Не работает программа (Помогите кто, чем может...)
Не работает программа
ДиггерДата: Суббота, 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, но все-равно ничего не работает. sad

Добавлено (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)

тут просто нужно было сменить на такое условие:
Код
if (cGMI == '1')

потому-что cin воспринимает переменную char как символьную, следовательно нужно сравнивать введенные символы, а не введенную цифру.

Добавлено (01.06.2014, 19:47)
---------------------------------------------

Цитата Диггер ()
Пробовал меня символ в IF с == на = не

если в условие подставить if (c = 1) то программа присвоит значение переменной, а не сравнит ее.


Сообщение отредактировал Xakep - Воскресенье, 01 Июня 2014, 19:46
Форум игроделов » Программирование » C/C++ » Не работает программа (Помогите кто, чем может...)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг