C程序-需要帮助修复复数计算器程序:使用指针和通过地址显示结果

问题描述 投票:0回答:1

我正在创建一个可以对复数进行加,减和乘积的计算器,但是在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);
}
c pointers double
1个回答
1
投票

[displayComplexNumber()不应该使用指针,它应该只使用双精度。

void displayComplexNumber(double num, double imagine)

您需要在开始时在原型以及函数定义中进行修复。

然后,当您调用它时,就不会放入参数类型。它应该只是:

displayComplexNumber(num, imagine);
© www.soinside.com 2019 - 2024. All rights reserved.