Возможно, не самое эффективное решение #include <iostream> #include <cstdlib> #include <ctime> int main() { using namespace std; const int N = 10; int A[N]; srand(time(0)); for (int i = 0; i < N; ++i) A[i] = rand() % 201 - 100;
//Вывод исходного массива на экран for (int i = 0; i < N; ++i) cout << A[i] << " "; cout << endl;
//Подсчитаем количества положительных и отрицательных int kpos = 0, kneg = 0; for (int i = 0; i < N; i++) if (A[i] > 0) ++kpos; else ++kneg;
int * Apos = new int[kpos]; int * Aneg = new int[kneg]; int pos = 0, neg = 0; for (int i = 0; i < N; ++i) if (A[i] > 0) Apos[pos++] = A[i]; else Aneg[neg++] = A[i];
for (int i = 0; i < N; ++i) if (i < kpos) A[i] = Apos[i]; else A[i] = Aneg[i - kpos];
delete[] Apos; delete[] Aneg;
//Вывод полученного массива на экран for (int i = 0; i < N; ++i) cout << A[i] << " "; cout << endl; return 0; }
{таким образом, фразу " работа на завтра." можно закодировать как "11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-".}
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
using namespace std;
const int N = 10;
int A[N];
srand(time(0));
for (int i = 0; i < N; ++i)
A[i] = rand() % 201 - 100;
//Вывод исходного массива на экран
for (int i = 0; i < N; ++i)
cout << A[i] << " ";
cout << endl;
//Подсчитаем количества положительных и отрицательных
int kpos = 0, kneg = 0;
for (int i = 0; i < N; i++)
if (A[i] > 0)
++kpos;
else
++kneg;
int * Apos = new int[kpos];
int * Aneg = new int[kneg];
int pos = 0, neg = 0;
for (int i = 0; i < N; ++i)
if (A[i] > 0)
Apos[pos++] = A[i];
else
Aneg[neg++] = A[i];
for (int i = 0; i < N; ++i)
if (i < kpos)
A[i] = Apos[i];
else
A[i] = Aneg[i - kpos];
delete[] Apos;
delete[] Aneg;
//Вывод полученного массива на экран
for (int i = 0; i < N; ++i)
cout << A[i] << " ";
cout << endl;
return 0;
}
{данная программа переводит любое сочетание символов ascii в систему счисления заданную пользователем.}
//pascal abc.net v3.0 сборка 1111
var
a,i,b,r,n,j,bug: integer;
s,se,slo,slof: string;
procedure preob(var a,b,n: integer; var se: string);
begin
repeat
b: =a mod n;
a: =a div n;
str(b,se);
s+=se;
until (a< =n-1);
end;
beginreadln(slo);
readln(n);
for j: =1 to length(slo) do
begin;
a: =ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i: =1 to length(s) div 2 do
begin;
se: =s[i];
s[i]: =s[length(s)-i+1];
s[length(s)-i+1]: =se[1];
end;
write(s,'-');
slof: =slof+s;
delete(s,1,length(s));
end;
end.
пример ввода:
работа на завтра.
2
пример вывода:
11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-
{таким образом, фразу " работа на завтра." можно закодировать как "11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-".}