Ввод нескольких чисел с помощью cin ERROR

Я хочу ввести 5 float значения последовательно, но программа не работает должным образом

#include <iostream>

using namespace std;

int main()
{
float v, i, vr, vl, vc, r, xl, xc, z;
for (int i = 1; i <= 9; i++)
{
cout << "Enter the values of v,i,vr,vl,vc" << endl;
cin >> v;
cin >> i;
cin >> vr;
cin >> vl;
cin >> vc;
cout << endl << v << " " << i << " " << vr << " " << vl << " " << vc << endl;
}
return 0;
}

Если я пытаюсь ввести ввод как 1.1 2.2 3.3 4.4 5.5, программа принимает только четыре значения

Выход:
1,1 2 0,2 ​​3,3 4,4

Пожалуйста, скажите мне, где я иду не так и как я могу исправить свой код.

0

Решение

Ты используешь i как float во внешней области, а затем с помощью it как int во внутреннем объеме.
Поэтому, когда вы вводите

1.1 2.2 3.3 4.4 5.5

С помощью

cin>>v;
cin>>i;
cin>>vr;
cin>>vl;
cin>>vc;

Это займет всего 2 от 2.2 а затем берет 0,2 для переменной vr.

Значения переменных становятся

v=1.1
i=2
vr=0.2
vl=3.3
vc=4.4

Следовательно, 5,5 осталось, потому что он принимает 2,2 в качестве 2 входов

Решение:

Измени свой for переменная цикла в j,

3

Другие решения

В вашем коде конфликт имен переменных:

float v, i, vr, vl, vc, r, xl, xc, z; // Here, variable "i" is declared as a floating-point variable

for (int i = 1; i <= 9; i++) // Here, "i" is declared again, this time as an int

Когда существует несколько переменных с одинаковыми именами, но в разных областях кода, компилятор использует переменную, которая является локальной для области действия в этой точке. Это вызывает ошибку; вы хотите переменную i хранить ценность 2.2 однако самой локальной переменной является счетчик i для цикла. Следовательно, компилятор пытается сохранить значение в счетчике. Поскольку счетчик имеет тип int, 2.2 разбит; счетчик i магазины 2, и vr хранит 0.2,

Вот почему ваш компилятор принимает только 4 значения; второе значение ввода разделено на две переменные.

Чтобы исправить это, измените имя переменной счетчика для вашего цикла for:

float v, i, vr, vl, vc, r, xl, xc, z;
for (int j = 1; j <= 9; j++) // The name of the counter variable is changed from "i" to "j"{
cout << "Enter the values of v,i,vr,vl,vc" << endl;
cin >> v;
cin >> i;
cin >> vr;
cin >> vl;
cin >> vc;
cout << endl << v << " " << i << " " << vr << " " << vl << " " << vc << endl;
}

Или измените имя переменной i (тот, который имеет область за пределами цикла for) к какому-то другому имени:

float v, num, vr, vl, vc;
for (int i = 1; i <= 9; i++)
{
cout << "Enter the values of v,j,vr,vl,vc" << endl;
cin >> v;
cin >> num;
cin >> vr;
cin >> vl;
cin >> vc;
cout << endl << v << " " << num << " " << vr << " " << vl << " " << vc << endl;
}
0

По вопросам рекламы [email protected]