задали дз. попросили написать тернарный оператор и if else на С что бы не делал пишет ошибки

Вот весь код.

#include <stdio.h>

// Тернарный оператор
char result = (num > 0) ? "Больше 0" : "Меньше 0";

// if-else
char* result;
if (num > 0) {
    result = "Больше 0";
} else {
    result = "Меньше 0";
}

Ошибки которые он выдаёт: 1.идентификатор "num" не определен (строка 4) 2.выражение должно иметь константное значение (строка 4) 3.требуется объявление (строка 8)


Ответы (1 шт):

Автор решения: DaYa

Ни разу не писал ничего на C. Но разобрав ваш пример, мне показалось странным что вы пытаетесь сохранить в переменную типа char строку которая во всех языках программирования может хранить только один символ. То есть вы пытаетесь запихнуть например больше 0 в переменную которая может хранить только один символ, например "а"

Вместо этого используйте указатель на строку.

#include <stdio.h>

int main() {
    int num = 5;

    const char* result;
    if (num > 0) {
        result = "Больше 0";
    } else {
        result = "Меньше 0";
    }

    printf("%s\n", result);
    return 0;
}

С использованием тернарного оператора это будет выглядеть так:

#include <stdio.h>

int main() {
    int num = 5; // ваше значение 

    // Тернарный оператор
    const char* result = (num > 0) ? "Больше 0" : "Меньше 0";

    printf("%s\n", result);
    return 0;
}

→ Ссылка