Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2012, 00:19   #1
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию Что я не правильно делаю?

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");

cout << "Игрок1\nВведите Камень(K), Ножницы(N), Бумага(B): ";
char p1[2];
cin >> p1;
cout << "\nИгрок2\nВведите Камень(K), Ножницы(N), Бумага(B): ";
char p2[2];
cin >> p2;

if(!strcmp(p1, p2)) {cout << "Ничья!";}//для ничьей
else if(p1 == "B" && p2 == "K") {cout << "Игрок1 победил!";}//			бумага камень
else if(p1 == "B" && p2 == "N") {cout << "Игрок2 победил!";}//		бумага ножницы
else if(p1 == "K" && p2 == "N") {cout << "Игрок1 победил!";}//	камень ножницы
else if(p1 == "K" && p2 == "B") {cout << "Игрок2 победил!";}//			камень бумага
else if(p1 == "N" && p2 == "K") {cout << "Игрок2 победил!";}//	ножницы камень
else if(p1 == "N" && p2 == "B") {cout << "Игрок1 победил!";}//		ножницы бумага

getch();
return 0;
}
Подскажите пожалуйста, почему он не работает?
работает только эта строка
Код:
if(!strcmp(p1, p2)) {cout << "Ничья!";}//для ничьей
apeorin вне форума Ответить с цитированием
Старый 20.11.2012, 00:43   #2
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
По умолчанию

if(p1[0] == 'b' && p2[0] == 'k')
попробуйте так сравнить элементы массива и их значения
и маленькими буквами : чувствительно к регистру
Благими намерениями вымощена дорога в ад

Последний раз редактировалось mazak; 20.11.2012 в 00:49. Причина: дополнение
mazak вне форума Ответить с цитированием
Старый 20.11.2012, 09:58   #3
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Не работает, ошибку бьет.
apeorin вне форума Ответить с цитированием
Старый 20.11.2012, 10:21   #4
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Ошибка у вас при сравнении.
С какой целью создавали эти массивы?
Код:
char p1[2];
char p2[2];
Лучше ведь просто char'овые переменные сделать и без проблем сравнивать.

Либо сделайте чёткий ввод.
Например
Код:
cin >> p1[0];
cin >> p2[0];

Последний раз редактировалось Axrik; 20.11.2012 в 10:25.
Axrik вне форума Ответить с цитированием
Старый 20.11.2012, 19:15   #5
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Axrik Посмотреть сообщение
Ошибка у вас при сравнении.
С какой целью создавали эти массивы?
Код:
char p1[2];
char p2[2];
Лучше ведь просто char'овые переменные сделать и без проблем сравнивать.

Либо сделайте чёткий ввод.
Например
Код:
cin >> p1[0];
cin >> p2[0];
Спасибо. Все работает.
apeorin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на Си. правильно делаю нет? assss Помощь студентам 1 02.10.2012 21:07
JQuery Не работает элементарный код, что делаю не правильно? Aleskandr Помощь студентам 0 28.09.2012 09:21
Что я не правильно делаю в функции поворота изображения maxcroud C# (си шарп) 2 18.06.2012 16:36
Что не правильно делаю с free(); Winston123 Общие вопросы C/C++ 25 15.06.2009 21:21
правильно ли я делаю? andrey4623 Общие вопросы Delphi 2 07.03.2008 20:14