![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Димитрий |
|
|||
|
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 |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
if(answer == "Moscow")
Ты сравниваешь указатели на массивы из букв. правильно:
Тогда сравнивается буква за буквой. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Спасибо парень!!
Я теперь спать спокойно буду. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Я б тебе не советовал спать!Учи библиотеку классов строк и разьерись с массивом строк
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Димитрий |
|
|||
|
Unregistered |
а почему не срабатывает в аналогичной ситуации???
float answer test_score = 0 if(answer == 3.141) test_score = test_score + 1 |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Потому что answer это всё ещё указатель на массив из букв, а не число
для начала надо преобразовать строку в число. Например функцией atof(answer) (atof - ascii to float / буквы в число ц плавающей точкой) То есть:
Ну а если ты не ждёшь от пользователя числа то сравнивай answer с помощью strcmp с "3.141". Послушай совета Coocky |
|||
|
||||
| Димитрий |
|
|||
|
Unregistered |
почему массив из букв, считай что я в начале программы написал float answer
|
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
напиши полный код int main(); -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Точно! Извиняюсь Но что бы разобраться нужно больше кода PS: Зарегистрируйся пожалуйста! |
|||
|
||||
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
if(answer == 3.141) - невыполняется. Это относится к теме сравнения переменных типа float. Уже была такая тема. Порыскай по форуму. Я её создавал. Там ответ в полном объёме дан. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |