void printArray(int *array, int length) { for (int i=0;i<length;i++) std::cout<<std::setw(4)<<array[i]; std::cout<<std::endl; }
int main() { srand(time(0)); int length; std::cin>>length; int *array=new int[length]; for (int i=0;i<length;i++) array[i]=rand()%100+1; printArray(array,length); int posMax=0; for (int i=1;i<length;i++) if (array[posMax]<array[i]) posMax=i; bool flag=false; while (flag==false) { flag=true; for (int i=posMax+2;i<length;i++) if (array[i]<array[i-1]) { flag=false; swap(array[i],array[i-1]); } } printArray(array,length); return 0; }
Сначала переводим числа 6 и 4 в 2-ную систему. Для этого делим всё время на 2 с остатком:
6 / 2 = 3 (остаток 0)
3 / 2 = 1 (остаток 1)
Выписываем последний результат деления (1) и все остатки, начиная с конца:
1 1 0
Таким образом:
Аналогично:
Умножаем: 110 х 100 = 11000
Тут действует такое же правило, что и для обычных десятичных чисел: чтобы умножить на 10, 100, 1000, 10000 и т.д., достаточно просто дописать справа столько нулей, сколько их есть в этом множителе. А вобще умножение двоичных чисел выполняется точно так же, как и десятичных - если нужно, то в столбик. Двоичную "Таблицу умножения" очень легко выучить наизусть:
0 х 0 = 0
0 х 1 = 0
1 х 0 = 0
1 х 1 = 1
Когда при умножении в столбик мы складываем промежуточные результаты, правила тоже простые:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 0
1 + 1 = 10
(смотри пример умножения на прикреплённом рисунке)
#include <iomanip>
#include <cstdlib>
#include <ctime>
template <typename T>
void swap(T &a, T&b)
{
T t=a;
a=b;
b=t;
}
void printArray(int *array, int length)
{
for (int i=0;i<length;i++)
std::cout<<std::setw(4)<<array[i];
std::cout<<std::endl;
}
int main()
{
srand(time(0));
int length;
std::cin>>length;
int *array=new int[length];
for (int i=0;i<length;i++)
array[i]=rand()%100+1;
printArray(array,length);
int posMax=0;
for (int i=1;i<length;i++)
if (array[posMax]<array[i])
posMax=i;
bool flag=false;
while (flag==false)
{
flag=true;
for (int i=posMax+2;i<length;i++)
if (array[i]<array[i-1])
{
flag=false;
swap(array[i],array[i-1]);
}
}
printArray(array,length);
return 0;
}
Сначала переводим числа 6 и 4 в 2-ную систему. Для этого делим всё время на 2 с остатком:
6 / 2 = 3 (остаток 0)
3 / 2 = 1 (остаток 1)
Выписываем последний результат деления (1) и все остатки, начиная с конца:
1 1 0
Таким образом:
Аналогично:
Умножаем: 110 х 100 = 11000
Тут действует такое же правило, что и для обычных десятичных чисел: чтобы умножить на 10, 100, 1000, 10000 и т.д., достаточно просто дописать справа столько нулей, сколько их есть в этом множителе. А вобще умножение двоичных чисел выполняется точно так же, как и десятичных - если нужно, то в столбик. Двоичную "Таблицу умножения" очень легко выучить наизусть:
0 х 0 = 0
0 х 1 = 0
1 х 0 = 0
1 х 1 = 1
Когда при умножении в столбик мы складываем промежуточные результаты, правила тоже простые:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 0
1 + 1 = 10
(смотри пример умножения на прикреплённом рисунке)