C Программа - Нужна помощь в исправлении программы калькулятора комплексных чисел: отображение результатов с указателями и передаваемыми адресами - PullRequest
0 голосов
/ 13 марта 2020

Я создаю калькулятор, который добавляет, вычитает и умножает комплексные числа, но я продолжаю получать ошибки в моем displayComplexNumber. Каждый раз, когда я пытаюсь скомпилировать, он говорит: «ошибка: ожидаемое выражение перед 'double'" или "ошибка: слишком мало аргументов для функции 'displayComplexNumber'"

#include <stdio.h>
#include <stdlib.h>

int getMenuChoice();
void getComplexNumber(double* num, double* imagine);
void addComplexNumber(double num1, double imagine1, double num2, double imagine2, double* num, double* imagine);
void displayComplexNumber(double* num, double* imagine);

int main()
{
    double num1,imagine1, num2, imagine2, num, imagine;
    int choice;
    do
    {
        choice = getMenuChoice();
        switch (choice)
        {
        case 1: // addition
            getComplexNumber(&num1, &imagine1);
            getComplexNumber(&num2, &imagine2);
            addComplexNumber(num1, imagine1, num2, imagine2, &num, &imagine);
            displayComplexNumber(double* num, double* imagine)
            break;
        case 0: // display
            break;
        default:
            break;
        }
    }while (choice != 0);

    return 0;
}

int getMenuChoice()
{
    int choice;
    printf("1 - addition\n");
    printf("0 - EXIT\n");
    scanf("%d",&choice);
    return choice;
}

void getComplexNumber(double* num, double* imagine)
{
    printf("Enter the real component\n");
    scanf("%lf", num);
    printf("Enter the imaginary component\n");
    scanf("%lf", imagine);
}

void addComplexNumber(double num1, double imagine1, double num2, double imagine2, double* num, double* imagine)
{
    *num = num1 + num2;
    *imagine = imagine1 + imagine2;
}
void displayComplexNumber(double* num, double* imagine)
{
    printf("*RESULT*\n");
    printf("%.2lf + %.2lfi\n", num, imagine);
}

1 Ответ

4 голосов
/ 13 марта 2020

displayComplexNumber() не должен брать указатели, он должен просто принимать двойные числа.

void displayComplexNumber(double num, double imagine)

Это необходимо исправить в начале прототипа и в определении функции.

Затем, когда вы вызываете его, вы не ставите типы параметров. Это должно быть просто:

displayComplexNumber(num, imagine);
...