#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int enterNumber = 0;
cout << "Введите целое число (от 1 до 9999): ";
cin >> enterNumber;
// проверяем входит ли введенное число в заданный диапазон
if (enterNumber <= 0 ||enterNumber > 9999)
cout << "Число не входит в диапазон от 1 до 9999!\n";
else // если да - приступаем к выводу на экран
{
cout << "\nВы ввели: ";
// чтобы добраться до первой цифры в введенном числе
// (если оно четырехзначное), надо это число поделить
// на 1000 и взять от него остаток от деления на 10
// например 8 888 / 1000 = 8 (888 тысячные отбрасываются
// т.к. введенное число типа int), далее 8 % 10 = 8
// так же не ошибитесь с оператором == (равно)
if ((enterNumber / 1000) % 10 == 1) cout << "Одна тысяча ";
else if ((enterNumber / 1000) % 10 == 2) cout << "Две тысячи ";
else if ((enterNumber / 1000) % 10 == 3) cout << "Три тысячи ";
else if ((enterNumber / 1000) % 10 == 4) cout << "Четыре тысячи ";
else if ((enterNumber / 1000) % 10 == 5) cout << "Пять тысяч ";
else if ((enterNumber / 1000) % 10 == 6) cout << "Шесть тысяч ";
else if ((enterNumber / 1000) % 10 == 7) cout << "Семь тысяч ";
else if ((enterNumber / 1000) % 10 == 8) cout << "Восемь тысяч ";
else if ((enterNumber / 1000) % 10 == 9) cout << "Девять тысяч ";
if ((enterNumber / 100) % 10 == 1) cout << "сто ";
else if ((enterNumber / 100) % 10 == 2) cout << "двести ";
else if ((enterNumber / 100) % 10 == 3) cout << "триста ";
else if ((enterNumber / 100) % 10 == 4) cout << "четыреста ";
else if ((enterNumber / 100) % 10 == 5) cout << "пятьсот ";
else if ((enterNumber / 100) % 10 == 6) cout << "шестьсот ";
else if ((enterNumber / 100) % 10 == 7) cout << "семьсот ";
else if ((enterNumber / 100) % 10 == 8) cout << "восемьсот ";
else if ((enterNumber / 100) % 10 == 9) cout << "девятьсот ";
if ((enterNumber / 10) % 10 == 1)
{
if (enterNumber % 10 == 0) cout << "десять долларов";
else if (enterNumber % 10 == 1) cout << "одинадцать долларов";
else if (enterNumber % 10 == 2) cout << "двенадцать долларов";
else if (enterNumber % 10 == 3) cout << "тринадцать долларов";
else if (enterNumber % 10 == 4) cout << "четырнадцать долларов";
else if (enterNumber % 10 == 5) cout << "пятнадцать долларов";
else if (enterNumber % 10 == 6) cout << "шестнадцать долларов";
else if (enterNumber % 10 == 7) cout << "семнадцать долларов";
else if (enterNumber % 10 == 8) cout << "восемнадцать долларов";
else if (enterNumber % 10 == 9) cout << "девятнадцать долларов";
}
if ((enterNumber / 10) % 10 == 2) cout << "двадцать ";
else if ((enterNumber / 10) % 10 == 3) cout << "тридцать ";
else if ((enterNumber / 10) % 10 == 4) cout << "сорок ";
else if ((enterNumber / 10) % 10 == 5) cout << "пятьдесят ";
else if ((enterNumber / 10) % 10 == 6) cout << "шестьдесят ";
else if ((enterNumber / 10) % 10 == 7) cout << "семьдесят ";
else if ((enterNumber / 10) % 10 == 8) cout << "восемьдесят ";
else if ((enterNumber / 10) % 10 == 9) cout << "девяносто ";
if ((enterNumber / 10) % 10 != 1)
{
if (enterNumber % 10 == 0) cout << "долларов";
else if (enterNumber % 10 == 1) cout << "один доллар";
else if (enterNumber % 10 == 2) cout << "два доллара ";
else if (enterNumber % 10 == 3) cout << "три доллара ";
else if (enterNumber % 10 == 4) cout << "четыре доллара ";
else if (enterNumber % 10 == 5) cout << "пять долларов ";
else if (enterNumber % 10 == 6) cout << "шесть долларов ";
else if (enterNumber % 10 == 7) cout << "семь долларов ";
else if (enterNumber % 10 == 8) cout << "восемь долларов ";
else cout << "девять долларов ";
}
}
cout << endl << endl;
return 0;
}
Спасибо за задания. Начал делать задачу (про 0-9999) и вот заткнулся на проверки ввода данных – хочется все сразу красиво сделать)
Делал это интуитивно, баловался и вроде работает нормально.
Можете подробно объяснить, что конкретно делают эти команды или кинуть ссылки про потоки с внятным объяснением (проверял что они выводят, смотрел на различия и т.д.).
Namely: cin.clear(); cin.ignore();in_avail();cin.get();cin.fail(). и что можно писать внутри скобок? And further “->” – тоже не совсем понятно(то что он возвращает что то вроде, но вот как он работает?)
Here is:
int n;
bool success = false;
while (success == false)
{
cout <> n;
if ((n >= 0) && (n in_avail()) == 1)
{
cout <in_avail()); //удаляем символы в буфере
}
else
{
cout << "\nВ вашем числе присутсвуют едопустимые символы.\nПопробуйте еще раз." <in_avail()); //удаляем символы в буфере
}
}
Почему-то при выводе правдивого ответа он вылазит дважды (задача без ответа – code):
#include
#include
using namespace std;
int main() {
int a, b, c, d;
cout << "Enter a" <> a;
cout << "Enter b" <> b;
cout << a << " * " << b << " = " << "result" << endl;
cout << "Enter result :" <> c;
d = a * b;
if(c == a * b) {
cout << "You're right :" << endl;
cout << a << " * " << b << " = " << d << endl;
} else
cout << "You are mistaken :" << endl;
cout << a << " * " << b << " = " << d << endl;
cin.get();
return 0;
}
Надо взять в фигурные скобки
else {
cout << "You are mistaken :" << endl; cout << a << " * " << b << " = " << d << endl; }
А то, что юзер должен ввести ОДНОЗНАЧНЫЕ ЧИСЛА никого не смущает? Все просто мимо эту проверку пропускают.
Необходимо написать программу проверки не вхождения введенного числа в диапазоне от – 5 to – 1. Поможете? C
Задачу 3 я решил так:
Почему я не могу посмотреть код к второму заданию?
Всё замечательно открывается.
Когда исправил все ошибки прога заработала с первого раза.
Если у кого-то возникают проблемы с решением 3-ей задачи вот пример моего кода: