Здесь есть две проблемы. Во-первых, вам нужно включить следующие заголовки:
#include <stdio.h> // declares functions like printf and scanf
#include <stdlib.h> // declares functions like exit
Если вы не включите эти заголовки, то компилятор не знает, как их выполнять или их точные форматы. Когда вы пытаетесь скомпилировать, предупреждения не будут полезны. Для этого есть несколько хороших сайтов; просто найдите что-то вроде "c exit ()" в Google, и он скажет вам, какие заголовки вам понадобятся в будущем. Когда я компилировал этот код, я использовал gcc main.c -Wall
, что заставляет отображать все предупреждения.
Во-вторых, вы используете адрес c
в обоих случаях. Когда вы печатаете значение c
, вы фактически печатаете адрес c
, а не значение. scanf()
принимает адрес (а) переменных для хранения значений, но printf()
принимает сами переменные. Код должен выглядеть примерно так:
scanf("%i", &c);
printf("You Have Entered %i Classes!\n", c);
Это также всегда хорошая идея инициализировать ваши переменные. Таким образом, вы знаете, когда что-то назначено неправильно или не назначено вообще. Я забыл назначить свои переменные на некоторое время, и при компиляции на другой машине это не сработало. Это потому, что разные машины будут инициализировать переменные по-разному. Просто измените код на следующий:
int opt = 0;
int c = 0;