Создание простого калькулятора, возникла проблема с добавлением - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь создать простой калькулятор, и я уже столкнулся с проблемой при использовании дополнения.Я создал функцию для сложения, и всякий раз, когда я передаю два значения, я получаю разные ответы.Например, когда я добавляю 4,5, я ожидаю получить 9, но я получаю ответ 0029144C .Я все еще новичок, поэтому сначала я не был уверен, повлияет ли использование типа bool для функции добавления на мой результат, но я изменил его на тип float и все равно получаю тот же результат (на случай, если кто-нибудь спросит).

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;


void SimCalcMenu();
void additionSign();
bool makeSum(float num1, float num2);

int main() {

    float firstNum, SecondNum;
    char operationLetter;



    SimCalcMenu();
    cout << " Please Select an Operation You Would Like to Perform ";
    cin >> operationLetter;

    if (operationLetter == 'a' || operationLetter == 'A')
    {
        additionSign();
        cout << " Enter the First Number : ";
        cin >> firstNum;

        cout << " Enter the Second Number: ";
        cin >> SecondNum;

        makeSum(firstNum, SecondNum);


        cout << " The Sum of " << firstNum << " and " << SecondNum << " is :" << makeSum << endl;




    }

    else
    {
        cout << " Error ";
    }



    return 0;
}

void SimCalcMenu() {

    cout << "------------------------------------------------------------------------------" << endl;
    cout << "        WELCOME TO SIM CALCULATOR          " << endl;
    cout << "------------------------------------------------------------------------------" << endl;
    cout << endl;
    cout << " Please Select an Operation :  " << endl;
    cout << " A.) Addition " << endl;
    cout << " B.) Subtraction " << endl;
    cout << " C.) Multiplication " << endl;
    cout << " D.) Division       " << endl;
    cout << " E.) Roots ( Only Positive Number)" << endl;
    cout << " F.) Power ( Only Positive Number " << endl;
    cout << " G.) Percentage                   " << endl;
    cout << " H.) Display functions execution  " << endl;
    cout << " I.) Quit                         " << endl;
    cout << "------------------------------------------------------------------------------" << endl;

}

void additionSign() {

    cout << "------------------------------------------------------------------------------" << endl;
    cout << "        ADDITION          " << endl;
    cout << "------------------------------------------------------------------------------" << endl;




}




bool makeSum(float num1, float num2) {

    float totSum;

    totSum = num1 + num2;

    return totSum;

}

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

эта строка

  cout << " The Sum of " << firstNum << " and " << SecondNum << " is :" << makeSum << endl;

IS 'печать' 'makeum', makeum - это функция, поэтому ее печать по адресу makeum

вам нужна

  cout << " The Sum of " << firstNum << " and " << SecondNum << " is :" << makeSum(firstNum, SecondNum) << endl;

теперь, по крайней мере, он напечатает результат makesum.Как другие указали, что функция является неправильной (она возвращает bool).

должно быть

float makeSum(float num1, float num2) {
    float totSum;
    totSum = num1 + num2;
    return totSum;
}
0 голосов
/ 05 июня 2018

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

Вы не получаете правильный результат, потому что вы печатаете makeSum, который является адресом функции.Вы хотите напечатать значение makeSum(firstNum, SecondNum).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...