Ошибка C неинициализированная переменная

#c #debugging

#c #отладка

Вопрос:

Мне поручено написать программу, в которой пользователь вводит два значения, может быть с десятичными дробями. Затем создайте функцию void, которая изменяет точность на 4 цифры. Я создал программу, и она отлично выполняет первое значение (x), но по какой-то причине выдает ошибку, в которой говорится, что вторая переменная неинициализирована (h) любые советы будут оценены! Я думаю, что я слишком долго смотрел на нее и просто не могу ее обнаружить!

Ниже приведен код:

 #include <iostream>
#include<cmath>

using namespace std;

void display_it(double x, double h);

int main(void) // getting input from user and displaying output
{
    double x, h;
    cout << "Please enter 2 values to be displayed with precision.n";
    cin >> x, h;
    cout << x << endl;
   cout << h << endl;
   return 0;
}

void display_it(double x,double h) //does the precision change of x and h
{
   cout.setf(ios::fixed);
   cout.setf(ios::showpoint);
   cout.precision(4);
}
  

Комментарии:

1. cin >> x, h; => cin >> x >> h;

2. К вашему сведению, basic тег предназначен для БАЗОВОГО языка, а не для основных элементов.

3. Ваша display_it функция не отображает никаких переменных; она только подготавливает выходной поток.

4. Заголовок вашего вопроса на самом деле не описывает проблему. Возможно, «ошибка неинициализированной переменной» было бы лучшим термином.

Ответ №1:

Эта строка:

 cin >> x, h;
  

не считывается в 2 значениях из cin . На самом деле это только чтение в 1 значении, после чего вычисляется выражение, h которое после , (которое ничего не делает). Таким образом, предупреждение / ошибка о h неинициализации верны.

Правильный способ считывания 2 значений:

 cin >> x >> h;