РЕДАКТИРОВАТЬ: Эта проблема была решена, спасибо всем за ввод!
Я работаю над очень простым проектом для моего класса C / C ++, в котором программа имитирует 3-раундовый бой между Neoи агент Смит, используя введенные пользователем значения урона для каждого раунда.Эта часть кода работает нормально, однако в конце кода программа спрашивает пользователя, понравилось ли ему сражение.Предполагается, что пользователь вводит «y» или «n» и получает соответствующий оператор, однако независимо от того, что я ввожу, программа возвращает оператор «n».Мой профессор попросил меня задать переполнение стека, потому что он не может сразу же обнаружить ошибки в моем синтаксисе.
Вот программа:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double NEO_DAMAGE;
int SMITH_DAMAGE;
float NEO_SKILL=10;
float SMITH_SKILL=12;
float NEO_MULTIPLIER=1.5;
float SMITH_MULTIPLIER=1.7;
int FIGHT_NUMBER =1;
while (FIGHT_NUMBER<=3)
{
printf("Round ");
printf("%d\n", FIGHT_NUMBER);
printf("Neo and Smith must FIGHT! \n");
printf("\n");
printf("How much damage does Neo deal? (1-10)\n");
scanf("%lf",&NEO_DAMAGE);
printf("\n");
printf("How much damage does Smith deal? (1-10)\n");
scanf("%d",&SMITH_DAMAGE);
printf("\n");
SMITH_DAMAGE=SMITH_DAMAGE+((FIGHT_NUMBER-1)*0.5);
NEO_SKILL=((NEO_SKILL*NEO_MULTIPLIER)-SMITH_DAMAGE);
SMITH_SKILL=((SMITH_SKILL*SMITH_MULTIPLIER)-NEO_DAMAGE);
FIGHT_NUMBER=FIGHT_NUMBER+1;
}
printf("Neo's final skill: ");
printf("%.3f\n", NEO_SKILL);
printf("Smith's final skill: ");
printf("%.3f\n", SMITH_SKILL);
char answer;
printf("\nDid you enjoy the fight? (y or n)\n");
scanf("%c", &answer);
if (answer == 'y'){
printf("Wow! You're easily entertained. \n");
}
else {
printf("I can't blame you :c \n");
}
return 0;
}
Когда это скомпилировано вCodeBlocks, использующие компилятор GNU GCC, возвращает «Процесс завершен со статусом 0 (0 минут, 0 секунд)» 0 ошибок, 0 предупреждений (0 минут, 0 секунд)) ".
Любое понимание будет высоко ценится.Спасибо!
-Maxx