Const char нельзя присвоить сущность типа char - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Начинаю изучать Си И вот у меня немного не получается написать свою первую программу.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
 
    char n = 0;
    char r;
    system("chcp 1251 > nul");
    printf("Введите число от 0 до 99\n");
    scanf("%2d", n);
    r = n == 1 ? "копейка" : "not" ;
    printf("%d %s", n, r);
 
    return 0;

}
Интерпритатор ругается на: const char нельзя присвоить сущность типа char Хочу попросить бывалых пояснить мне пожалуйста почему у меня сейчас возникает такая ошибка? Пояснив мне почему, я в будущем буду избегать таких ошибок! Всем кто откликнется - очень благодарен!

Решение задачи: «Const char нельзя присвоить сущность типа char»

textual
Листинг программы
$ cat ./shit.c && clang shit.c && ./a.out 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int
main (int argc, char ** argv)
{
    char *s1 = "копейка";
    char * s2 = "not";
    char ch;
    srand(time(0));
    
    ch = rand() % 2 ? s1 : s2;
    
    fprintf(stdout, "ch = %X : s1 = %X : s2 = %X\n", ch);
    
    exit(EXIT_SUCCESS);
}
ch = FFFFFFD3 : s1 = E5D4B0D3 : s2 = E5D4B0C8
$

Объяснение кода листинга программы

  1. Программа начинается с подключения необходимых заголовочных файлов: stdio.h, stdlib.h и time.h.
  2. Определяется функция main, которая является точкой входа в программу.
  3. Внутри функции main инициализируются две строки: s1 и s2. Значение s1 установлено в копейка, а значение s2 установлено в not.
  4. Инициализируется переменная типа char с именем ch.
  5. Засекается случайное число с помощью функции rand() и оператора модуля %.
  6. Результат операции приводится к типу char и присваивается переменной ch.
  7. В зависимости от значения переменной ch, выводится соответствующее значение из строк s1 или s2.
  8. Выводится значение переменной ch в шестнадцатеричной системе счисления, а также значения переменных s1 и s2 в шестнадцатеричной системе счисления.
  9. Программа завершается с помощью функции exit, возвращающей код успеха EXIT_SUCCESS.
  10. Значения переменных s1 и s2 выводятся на экран: ch = FFFFFFD3 : s1 = E5D4B0D3 : s2 = E5D4B0C8.

Оцени полезность:

11   голосов , оценка 3.364 из 5
Похожие ответы