Добрый день! Как сделать вот такое условие в C++:
int num1;
float num2;
cin >> num1;
если num1 имеет плавающую точку, то num1 = num2
иначе если num1 не имеет плавающую точку, то num1 остается num1
Другие языки программирования и технологии
Как сделать условие в C++?
// лично я бы сделал через строку потом эту строку преобразовывал в число
// Но ладно делаем по твоему
// у тебя ошибка изначально есть
// ввод от пользователя должен быть в float или double переменную --
// потом эту переменную Округляешь с функцией floor
// и раскидываешь по нужным переменным
#include
#include // не забываем подключить библиотеку math.h - математических функций
using namespace std;
int main()
{
float fnum = 0;
cin >> fnum;
if( floor(fnum) < fnum ) /* округляем и проверяем */
{ /* делай что надо */
cout << "число с точкой" << endl;
}
else
{ /* делай что надо */
cout << "целое чило" << endl;
}
cout << fnum << endl;
return 0;
}
// Но ладно делаем по твоему
// у тебя ошибка изначально есть
// ввод от пользователя должен быть в float или double переменную --
// потом эту переменную Округляешь с функцией floor
// и раскидываешь по нужным переменным
#include
#include // не забываем подключить библиотеку math.h - математических функций
using namespace std;
int main()
{
float fnum = 0;
cin >> fnum;
if( floor(fnum) < fnum ) /* округляем и проверяем */
{ /* делай что надо */
cout << "число с точкой" << endl;
}
else
{ /* делай что надо */
cout << "целое чило" << endl;
}
cout << fnum << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class init {
public:
explicit init(string num) : n(num) { parse(); }
bool is_integer()const { return flag; }
int integer()const { return is_integer() ? i : INT_MIN; }
float real()const { return f; }
private:
void parse() {
auto index = n.find(".");
if (index == string::npos) {
i = stoi(n);
flag = true;
} else flag = false;
f = stof(n);
}
string n;
int i;
float f;
bool flag;
};
int main() {
cout << "number: ";
string num;
cin >> num;
init number(num);
if (number.is_integer()) {
auto i = number.integer();
cout << "Integer: " << i << endl;
} else {
auto f = number.real();
cout << "Real: " << f << endl;
}
cin.ignore();
cin.get();
}
#include <string>
using namespace std;
class init {
public:
explicit init(string num) : n(num) { parse(); }
bool is_integer()const { return flag; }
int integer()const { return is_integer() ? i : INT_MIN; }
float real()const { return f; }
private:
void parse() {
auto index = n.find(".");
if (index == string::npos) {
i = stoi(n);
flag = true;
} else flag = false;
f = stof(n);
}
string n;
int i;
float f;
bool flag;
};
int main() {
cout << "number: ";
string num;
cin >> num;
init number(num);
if (number.is_integer()) {
auto i = number.integer();
cout << "Integer: " << i << endl;
} else {
auto f = number.real();
cout << "Real: " << f << endl;
}
cin.ignore();
cin.get();
}
Как num1 может "иметь плавающую точку", если это целочисленная переменная?
операторы if и else
а смысл в int записывать число с плавающей?
Денис Чижевский
Я просто делаю калькулятор. Все операции с числами без плавающей точки сделал. Но пользователь же может ввести число с плавающей точки.
Не правильное условие. Возможно вместо типа int должен стоять float или double?
Денис Чижевский
Что за double? Про такое я еще не слыхал .-.
Похожие вопросы
- Как сделать Random в C#
- помогите сделать задачку на c++ пожалуйста.
- Как сделать выборв в C++?
- Реально ли в домашних условиях выучить C++?
- Помогите сделать задачу на C++.
- помогите с задачей С++..в общем не могу понять что не правильно сделал... условие и код внутри
- помогите сделать в программе c++
- кто может сделать прогу в C++ которая поменяет местами в каждом столбце минимальный и максимальные элементы в матрице??
- Нужно сделать игру на C++ за деньги до 25 августа:
- C++ как сделать двойное условия цикла?
if (num1 have plavat point = num2)
?