Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> оператор if, Помогите!!! 
:(
    Опции темы
Димитрий
Дата 4.8.2004, 22:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пример программы.

#include <iostream.h>
void main(void)
{
char answer[20];
int test_score;
test_score = 0;

cout << "What is the capital of Russia?" << endl;
cin >> answer;
if(answer == "Moscow")
test_score = test_score + 1;
и так далее...
и в конце например
cout << "you have " << test_score << " right answers";


Но при вводе в готовой программе слова Moscow и просмотре в конце программы своего результата он выдает что 0 правильных ответов, т.е НЕ ПРИНИМАЕТ ВВЕДЕННОЕ СЛОВО ЗА ПРАВИЛЬНЫЙ ОТВЕТ!!!
Помогите пожалуйста в чем здесь проблема!!!!



  Вверх
sergejzr
Дата 4.8.2004, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



if(answer == "Moscow")

Ты сравниваешь указатели на массивы из букв.
правильно:
Код
if (strcmp(answer,"Moscow")!=0)


Тогда сравнивается буква за буквой.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guest
Дата 4.8.2004, 22:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо парень!!
Я теперь спать спокойно буду.
  Вверх
Coocky
Дата 4.8.2004, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Я б тебе не советовал спать!Учи библиотеку классов строк и разьерись с массивом строк biggrin.gif biggrin.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Димитрий
Дата 4.8.2004, 23:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а почему не срабатывает в аналогичной ситуации???
float answer
test_score = 0
if(answer == 3.141)
test_score = test_score + 1

  Вверх
sergejzr
Дата 4.8.2004, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Потому что answer это всё ещё указатель на массив из букв, а не число smile.gif

для начала надо преобразовать строку в число. Например функцией atof(answer) (atof - ascii to float / буквы в число ц плавающей точкой)

То есть:
Код
if(atof(answer) == 3.141)


Ну а если ты не ждёшь от пользователя числа то сравнивай answer с помощью strcmp с "3.141".



Послушай совета Coocky smile.gif



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Димитрий
Дата 4.8.2004, 23:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











почему массив из букв, считай что я в начале программы написал float answer
  Вверх
Coocky
Дата 4.8.2004, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Код
а почему не срабатывает в аналогичной ситуации???
float answer
test_score = 0
if(answer == 3.141)
test_score = test_score + 1

напиши полный код int main();


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
sergejzr
Дата 4.8.2004, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Цитата
я в начале программы написал float answer

Точно! Извиняюсь smile.gif
Но что бы разобраться нужно больше кода smile.gif

PS:
Зарегистрируйся пожалуйста! smile.gif А то то Димитрий, то Guest... Как то не очень ....



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
gepard
Дата 5.8.2004, 04:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Цитата
а почему не срабатывает в аналогичной ситуации???
float answer
test_score = 0
if(answer == 3.141)
test_score = test_score + 1

if(answer == 3.141) - невыполняется.
Это относится к теме сравнения переменных типа float.
Уже была такая тема. Порыскай по форуму. Я её создавал. Там ответ в полном объёме дан.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.