Почему моя программа на C ++ выводит другое число для преобразования метров в футы? - PullRequest
0 голосов
/ 18 мая 2018

Итак, я пишу программу на C ++ для преобразования метров в футы.Программа делает комплимент.Однако, когда я установил значение футов = 3,279 и ввел 3,25 для метров.Ответ возвращается как 9.837.Может кто-нибудь сказать мне, почему это может происходить?(код ниже)

#include <iostream>
#include <cmath>
using namespace std; 

int main()
{
int meters; 
int feet;
feet = 3.279 * meters; 

cout << "Enter Meters to be converted to feet: "; 
cin >> meters;

cout << meters * 3.279 << " feet " << endl;

}

1 Ответ

0 голосов
/ 18 мая 2018

Целые числа - целые числа.Когда целому числу в C ++ присваивается целое число, все, что находится за десятичным знаком, игнорируется.

int x = 1.123; // x = 1
int y = 1.999; // y = 1

Кроме того, эта программа использует meters до того, как ей было присвоено значение в следующей строке

feet = 3.279 * meters; 

Но feet также никогда не используется после этого назначения.

Единственная часть кода, которая действительно используется, это

cin >> meters;
cout << meters * 3.279 << " feet " << endl;

Когда вы вводите 3.25 для meters значение в виде целого числа становится 3.Таким образом, вычисление в следующей строке становится 3 * 3.279, что фактически равно 9.837.

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