Функция, которая возвращает 1 или 0 в зависимости от введенного Yes/No - C (СИ)
Формулировка задачи:
Написать функцию, печатающую строку-вопрос (ее аргумент), принимающую с клавиатуры только ответ “Yes” или “No” (в форме Y, N или y, n), и возвращающую 1 – при ответе “Yes” и 0 - при “No”
не работает (всегда возвращает 0) и куча предупреждений (4 штуки).
И еще: если не сложно, ответьте как быть, если в задании бы требовалось вводить не одну букву Y или N, а YES или NO как тогда быть? разное же количество элементов?
#include <stdio.h> int YESorNO (char []); int main () { char i; char yesorno [1]; printf ("Введите YES (Y) или NO (N)\n"); scanf ("%c", &yesorno[i]); YESorNO (&i); printf ("Возвращаемое значение %d", YESorNO (i)); } int YESorNO (char *x) { char Y, N; if (x==Y) return 1; if (x==N) return 0; }
Решение задачи: «Функция, которая возвращает 1 или 0 в зависимости от введенного Yes/No»
textual
Листинг программы
#include <stdio.h> #include <string.h> int YESorNO (const char* x); int main () { /* самая длинная строка, которую предлагается ввести пользователю: "YES" для её хранения достаточно массива из 4 элементов(3 буквы + признак конца строки(символ '\0')) НО, для того чтобы не считать за правильный ввод строки вроде "YES1, "YESabc" и т.д, заведём массив не на 4, а на 5 элементов */ char yesorno[5]; printf("Введите YES или NO\n"); /* ввод строки(из всех введённых с клавиатуры символов в массив yesorno попадут только первые четыре) */ scanf("%4s", yesorno); printf("Возвращаемое значение %d\n", YESorNO(yesorno)); return 0; } int YESorNO(const char* x) { if(strcmp(x, "YES") == 0) return 1; if(strcmp(x, "NO") == 0) return 0; return -1; }
Объяснение кода листинга программы
- В функции main() объявлен массив yesorno типа char с размером 5.
- В функции main() пользователю предлагается ввести строку
YES
илиNO
. - В функции main() с помощью функции scanf() введенная пользователем строка сохраняется в массиве yesorno.
- В функции main() вызывается функция YESorNO() с аргументом yesorno.
- В функции YESorNO() с помощью функции strcmp() сравнивается переданный аргумент x со строками
YES
иNO
. - Если x равен
YES
, то в функции YESorNO() возвращается 1. - Если x равен
NO
, то в функции YESorNO() возвращается 0. - Если ни одно из условий не выполнено, то в функции YESorNO() возвращается -1.
- В функции main() выводится возвращаемое значение функции YESorNO().
- В функции main() выводится символ
\n
. - В функции main() возвращается 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д