Простой калькулятор - PullRequest
0 голосов
/ 07 марта 2019

Эй, ребята, я новичок в самообучении C ++. сегодня я пытался сделать простой калькулятор, но отладчик продолжает показывать мне ту же ошибку снова и снова. Используемая в унитазе переменная "X"; Использованная унитанизированная переменная "Z"

Вот код:

#include <iostream>
using namespace std;

int main()
{
    float x, z, a;
    a = x + z;



    cout << "Welcome to the calculator" << endl;
    cout << "State the first number " << endl;
    cin >> x ;
    cout << "State the second number " << endl;
    cin >>  z ;
    cout << "If you wanted to time number" << x << "by this number" << z << "The result would be : " << a << endl;



    system("pause");
    return 0;
} 

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Порядок, в котором вы делаете вещи, имеет значение.

int x = 5, z = 2;

int a = x + z; // a is 7

z = 5; // a is still 7

a = x + z; // now a is updated to 10

Так что в вашем коде, когда вы делаете a = x + z;, x и z неинициализированы.Использование неинициализированных переменных - неопределенное поведение.

Чтобы исправить это, переместите a = x + z; после ввода значений в x и z.

.
0 голосов
/ 07 марта 2019

Вы должны инициализировать свои переменные и вычислить a после того, как прочитали x и z. Взгляните на это: https://www.learncpp.com/cpp-programming/eight-c-programming-mistakes-the-compiler-wont-catch/

#include <iostream>
using namespace std;

int main()
{
    float x = 0.0f, z = 0.0f, a = 0.0f;

    cout << "Welcome to the calculator" << endl;
    cout << "State the first number " << endl;
    cin >> x ;
    cout << "State the second number " << endl;
    cin >>  z ;
    a = x + z;
    cout << "If you wanted to time number" << x << "by this number" << z << "The result would be : " << a << endl;



    system("pause");
    return 0;
} 
...