#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL,"russian");
cout << "Введите размер массива: ";
int N;
cin >> N;
N=N--;
unsigned int a[N];
for (int b = 0; b<=N; b++)
{
cout << "Введите число номер " << b << ": ";
cin >> a[b];
}
for(int i=0; i<=N; i++)
{
if(a[i]<=255)
{
cout << "Количество разрядов числа " << a[i] << " - 8" << endl;
}
if(a[i]>=256 && a[i]<=65535)
{
cout << "Количество разрядов числа " << a[i] << " - 16" << endl;
}
if(a[i]>=65536 && a[i]<=4294967295)
{
cout << "Количество разрядов числа " << a[i] << " - 32" << endl;
}
}
system("pause");
return 0;
}
Надеюсь, правильно понял определение разрядов.
Есть пожелания - в комментарии
//Pascal ABC.NET v3.1 сборка 1172
//По возрастанию
Const
n=55;
type
ty=array[1..n] of integer;
Var
ar:ty;
s:integer;
procedure quicksort(l,r:integer);
var i,j,x,temp:integer;
begin
i:=l; //левый конец
j:=r; //правый конец
x:=ar[random(r-l+1)+l];
repeat
while ar[i]<x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс
while x<ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс
if i<=j then //если левый индекс меньше или равен правому-продолжать
begin
temp:=ar[i];
ar[i]:=ar[j];
ar[j]:=temp;
inc(i); //чтобы не запустить бесконечную рекурсию
dec(j);
end;
until i>=j;
if l<j then quicksort(l,i); //l-левый конец нового витка, j-правый
if r>i then quicksort(i,r); //r-левый конец нового витка, i-правый
end;
begin
randomize;
writeln('First array:');
for s:=1 to n do
begin
ar[s]:=random(n);
write(ar[s]:4);
end;
quicksort(1,n);
writeln;
writeln('Final array:');
ar.println;
end.
//По убыванию
Const
n=55;
type
ty=array[1..n] of integer;
Var
ar:ty;
s:integer;
procedure quicksort(l,r:integer);
var i,j,x,temp:integer;
begin
i:=l; //левый конец
j:=r; //правый конец
x:=ar[random(r-l+1)+l];
repeat
while ar[i]>x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс
while x>ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс
if i<=j then //если левый индекс меньше или равен правому-продолжать
begin
temp:=ar[i];
ar[i]:=ar[j];
ar[j]:=temp;
inc(i); //чтобы не запустить бесконечную рекурсию
dec(j);
end;
until i>=j;
if l<j then quicksort(l,i); //l-левый конец нового витка, j-правый
if r>i then quicksort(i,r); //r-левый конец нового витка, i-правый
end;
begin
randomize;
writeln('First array:');
for s:=1 to n do
begin
ar[s]:=random(n);
write(ar[s]:4);
end;
quicksort(1,n);
writeln;
writeln('Final array:');
ar.println;
end.