Konstantin18ko
@Konstantin18ko
Стоматолог

Почему не компилируется код на С (gcc)?

Есть пример кода:
4fa4c990b16d488ea799616aa3418a44.jpg
Вроде все сделал правильно.
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char card_name[3];
    int count = 0;
    while (card_name[0] != 'X'){
        puts("Введите значение карты...");
        scanf("%2s", card_name);
        int val = 0;
        switch (card_name[0]){
        case 'J':
        case 'Q':
        case 'K':
            val = 10;
            break;
        case 'A':
            val = 11;
            break;
        case 'X':
            continue;
        default:
            val = atoi(card_name);
            if((val < 1) || (val > 10)){
                puts("Я не понимаю эти значения");
                continue;
            }
        }
        if ((val > 2) && (val <7)){
            count++;
        } else if (val == 10){
            count--;
        }
        printf("Текущий счет: %i\n", count);
    }
    return 0;
}

При компиляции происходит странная вещь. Компилятор создает программу, но через пару секунд удаляет её.
206847abac324599972337d7a546f70a.jpg
Если часто повторять команду >gcc fop.c -o fop.exe
То получится вот такая ошибка:
e3b89b14a80c4c99983a9fd0cf3919ea.jpgP.S. Если цикл switch заменить на if else, но программа собирается.
P.P.S. Если после каждого case поставить val = 10; break; - код работает.
  • Вопрос задан
  • 422 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Mercury13
Программист на «си с крестами» и не только
Я бы пенял на ложную тревогу антивируса.

Кроме того, программа неверна. В ней card_name используется раньше, чем заполняется чем-то стóящим.
Ответ написан
@koronabora
Человек
Запустите консоль от имени Администратора. Если не поможет, сделайте mingw/bin/ld.exe - запускать с правами администратора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы