После последнего else всё равно выводит целое число, хотя надо дробное. Что делать?
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
int k;
double k1;
cout << "введите положительное количество грибов: ";
cin >> k;
k1 = k;
cout << "мы нашли ";
if (floor(k) == k)
{
if ((k % 100 == 11) || (k % 100 == 12) || (k % 100 == 13) || (k % 100 == 14))
{
cout << k << " грибов в лесу" << endl;
return 0;
}
if (k % 10 == 1)
{
cout << k << " гриб в лесу" << endl;
return 0;
}
if ((k % 10 == 2) || (k % 10 == 3) || (k % 10 == 4))
{
cout << k << " гриба в лесу" << endl;
return 0;
}
if ((k % 10 > 4) || (k % 10 == 0))
{
cout << k << " грибов в лесу" << endl;
return 0;
}
}
else
{
cout << k1 << " гриба в лесу";
return 0;
}
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
int main() {
setlocale(LC_ALL, "RUS");
double k;
cout << "введите положительное количество грибов: ";
cin >> k;
cout << "мы нашли ";
if (floor(k) == k) {
int m = k;
if ((m % 100 == 11) || (m % 100 == 12) || (m % 100 == 13) ||
(m % 100 == 14)) {
cout << m << " грибов в лесу" << endl;
}
else if (m % 10 == 1) {
cout << m << " гриб в лесу" << endl;
}
else if ((m % 10 == 2) || (m % 10 == 3) || (m % 10 == 4)) {
cout << m << " гриба в лесу" << endl;
}
else {
cout << m << " грибов в лесу" << endl;
}
}
else {
cout << k << " гриба в лесу";
}
}