@DimaKatanavich
wtf

Почему компилятор пишет, что типы не совпадают?

Я написал такой калькулятор

Но при попытке компиляции он выдаёт данную ошибку:
main.c:24:5: error: conflicting types for 'calculate'
int calculate(int n1, int n2, char oper)


Более того, имеется ещё одна проблема: когда я пробовал скомпилировать программу без функции вычисления результата примера, то после ввода значений первых двух переменных (чисел), программа не давала ввести мне действие (типа char), сразу же обрываясь.

#include <stdio.h>

int num1, num2;
char op;

int calculate();

int main()
{
    printf("First number >> ");
    scanf("%d", &num1);

    printf("Second number >> ");
    scanf("%d", &num2);

    printf("Action >> ");
    op = getchar();

    calculate(num1, num2, op);

    return 0;
}

int calculate(int n1, int n2, char oper)
{
    switch(oper) {
        case '+':
            return n1 + n2;
            break;
        case '-':
            return n1 - n2;
            break;
        case '*':
            return n1 * n2;
            break;
        case ':':
            return n1 / n2;
            break;
        default:
            return 0;
            break;
    }
}
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Потому что ты определил функцию вверху без параметров int calculate();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы