Застрял в программе с логическими элементами. (Новичок в C)

#c #logic

#c #Логические

Вопрос:

Спасибо, что помогли мне, вот раздел о моем коде.

 printf("Thank you, now please enter the logic gate");
scanf("%s", amp;C);

if (C == 'AND')
{
    if (A == 1 amp;amp; B == 1)
    {
        (A amp;amp; B == 1);
        printf("You have chosen the AND logic gate n");
        printf("%dn", A);
    }
    else
    {
        printf("You have chosen the AND logic gate n");
        A = 0;
        printf("%dn", A);
    }
}
  

Я действительно смущен тем, как я буду хранить входные данные с более чем одним символом. Например, «И» или что-то в этом роде.

Кажется, что мой код просто не вводит ни один из операторов IF, любая помощь очень ценится.

Комментарии:

1. Что такое C ? Для %s спецификатора вам нужен массив char , а не адрес одного char . Кроме того, это, 'AND' вероятно, не то, что вы думаете — это не строка, а an int . Обычно вы используете только одинарные кавычки с одним символом внутри (чтобы получить значение этого символа как an int ). Используйте двойные кавычки для строкового литерала и сравните с strcmp() или аналогичным.

2. Строка (A amp;amp; B == 1); ничего не делает, пожалуйста, соблюдайте предупреждения компилятора.

3. Я предполагаю, что scanf("%s", amp;C); так и должно быть scanf("%s", C); , но вы не разместили достаточного количества кода. Я думаю, что ваша главная проблема заключается не в логических элементах, а в базовом синтаксисе C.

Ответ №1:

  1. Сначала используйте массив символов для чтения типа логического элемента char str[10]; scanf("%s", str)
  2. Затем сравните строку как таковую if (!strcmp(str, "AND")) { // matched }

Ответ №2:

Ваш код вообще компилируется? Покажите ваши объявления переменных для A, B и C.

 printf("Thank you, now please enter the logic gate");
scanf("%s", amp;C);
if (C == 'AND') 
// '' means char, you most likely want string here
// so you need to use strncmp() to compare strings

if (A == 1 amp;amp; B == 1)
{
    (A amp;amp; B == 1);
    // ^ This is not a valid syntax for comparing values