В с++. Заполните массив - Вопросы по С+

Вопрос В с++. Заполните массив

Регистрация
25 Окт 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
А) Заполните массив натуральными числами в обратном порядке, начиная со значения X, введённого с клавиатуры. Последний элемент должен быть равен X, предпоследний – X–1 и т. д. б) Заполните массив степенями числа 2 (от 21 до 2N), так чтобы элемент с индексом i был равен 2i.
 
Регистрация
11 Ноя 2012
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
А) Не всегда возможно. Числа могут стать и отрицательными. Будем считать, что не только натуральными, а и целыми. #include "algorithm" #include "iostream" using namespace std; int main(){ int n,x,*a; cout<<"N X: "; cin>>n>>x; a=new int[n]; generate(a,a+n,[&]()mutable{return ++x-n;}); for(int i=0;i< n;i++)cout<<a<<; cout<< endl;} Б) Условие противоречиво. По одной его части элемент с индексом 0 должен быть равен 2^0=1, по другой части 2^1=2. Сделаем по тому, что в скобках. #include "algorithm" #include "iostream" using namespace std; int main(){ int n,x=1,*a; cout<<"N: "; cin>>n; a=new int[n]; generate(a,a+n,[&]()mutable{return x*=2;}); for(int i=0;i< n;i++)cout<<a<<; cout<< endl;}
 
Регистрация
5 Дек 2013
Сообщения
85
Репутация
10
Спасибо
2
Монет
0
#include <iostream> #include <iomanip> using namespace std; int main() { cout << "x: "; size_t x; cin >> x; auto box = new unsigned[x]; for (auto i = 0U, n = x; i < x; ++i, --n) box = n; for (auto i = 0U; i < x; ++i) cout << setw(4) << box; puts(""); delete[] box; system("pause > nul"); }
 
Сверху Снизу