#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;