Другие языки программирования и технологии

С++. Элементы массива задаются с клавиатуры. Подсчитать количество элементов массива, являющихся трехзначным числом.

С++. Элементы
целочисленного массива задаются с клавиатуры. Подсчитать количество
элементов массива, являющихся трехзначным числом.
#include
using namespace std;
int main() {
const size_t size = 10;
int seq[size];
for (auto &item : seq) cin >> item;
cout << endl;
auto count = 0;
for (auto item : seq) if (3 == 1 + static_cast(log10(abs(item)))) ++count;
cout << "count: " << count << endl;
cin.ignore();
cin.get();
}
Сергей Желтов
Сергей Желтов
662
Лучший ответ
#include <iostream>
using namespace std;
int main() {
const size_t size = 10;
int seq[size];
for (auto &item : seq) cin >> item;
cout << endl;
auto count = 0;
for (auto item : seq) if (3 == 1 + static_cast<int>(log10(abs(item)))) ++count;
cout << "count: " << count << endl;
cin.ignore();
cin.get();
}
Блин нормально листинг не пишется.
cin

проверка на трехзначность
обновление итератора, если да
Рамиль Такаев гррршгршг
Михаил Богданов В моем ответе есть нормальный способ проверки на трехзначность.
трехзначное число больше 99 и меньше 1000
Рахмат Хакимов
Рахмат Хакимов
21 360
Сортируешь массив по возрастанию
Находишь первый элемент >= 100
Длина массива минус индекс этого элемента
Александр Мусатов Гениально! А я на 10 хотел делить и увеличивать переменную. Но только у вас нужно ещё одно условие <=999
Михаил Богданов Ты усложнил задачу и предложил неверный способ определения трехзначных чисел. А если в массиве есть числа с четырьмя и больше знаками, они ведь не трехзначные, а твой способ будет считать их трехзначными. Ты нашел числа больше чем двузначные..
Вот два способа определить трехзначность числа:

1) Если модуль числа больше или равно 100 и меньше 1000, то оно трехзначное.

2) Или если lg от модуля числа больше или равно 2 и меньше 3 то оно трёхзначное.
Александр Иванов Гениальный метод! Без сарказма! Держи +
Мишко Rhythm 3) можно превращать целое в строку и считать количество цифр в строке
Ну можно совсем извратиться и проверить регулярным выражением \d{3} после to_string, либо через strlen . Хотя, это не вполне оптимально.

Через логарифмы тут ответили уже.
Сергей Frost
Сергей Frost
9 202
include #include using std::cout; using std::cin; using std::endl; int main() { int arr[10]; // Заполняем массив с клавиатуры for (int i = 0; i < 10; i++) { cout << "[" << i + 1 << "]" << ": "; cin >> arr[i]; } if (i>=100) { cout << arr[i] << "."; return 0; }

return 0;
}
Попробуй скомпилировать, авось...
Kirill Badikov прочитайте :)

Похожие вопросы