C/C++

Могите написать программу в с ++

Дан одномерный массив, организовать ввод данных,через генератор случайных чисел и вывести на экран значения введенного индекса
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <array>
#include <random>
#include <iterator>
using namespace std;
template<typename Type, streamsize Width>
class Output {
public:
Output(Type value) : value(value) {}
private:
Type value;
friend ostream& operator<<(ostream& out, const Output<Type, Width>& box) {
return out << setw(Width) << box.value;
}
};
template<typename Container, streamsize Width>
void show(Container& box) {
copy(box.begin(), box.end(), ostream_iterator<Output<Container::value_type, Width>>(cout, ""));
puts("");
}
int main() {
uniform_int_distribution<> uid(10, 99);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
array<int, 16U> box{};
generate(box.begin(), box.end(), rand);
const auto width = 4U;
show<array<int, 16U>, width>(box);
system("pause > nul");
}
Виктор Бурдюгов
Виктор Бурдюгов
88 659
Лучший ответ
Со вводом диапазона [a; b], длины массива n, выводом массива на экран, запросом индекса и печатью значения элемента массива по этому индексу:
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int max(int a, int b) { return (a > b) ? a : b; }
unsigned digits(int n) { unsigned m = 1;
if (n == 0) return 2; if (n < 0) { m = 2; n = abs(n); }
while (n) { n /= 10; m++; } return m; }
int main() { int a, b, j = 0, k, l, m, n; cout << "a b n » ";
cin >> a >> b >> n; int *A = new int [n]; srand(time(NULL));
l = max(digits(a), digits(b)); m = 50 / l; for (k = 0; k < n; k++)
{ A[k] = a + rand() % (b + 1 - a); cout << setw(l) << A[k]; j++;
if (j == m) { j = 0; cout << endl; } } cout << "\n№ "; cin >> k;
cout << "A[" << k << "] = " << A[k] << endl;
system("pause > nul"); return 0; }
я худею вот мозги у людей, мне кажется уже что я полный дурачок.
Игорь Ребезов
Игорь Ребезов
2 780