#include <iostream>
#include <string>
using namespace std;
int main()
{
string w;
int b;
string arr;
getline(cin,w);
cin>>b;
cin.ignore();
getline(cin,arr);
if(w == "szyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])+b>122) arr[i]-=26;
arr[i]+=b;
}
else
{
if(int (arr[i])+b>90) arr[i]-=26;
arr[i]+=b;
}
}
}
}
if(w == "odszyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])-b<97) arr[i]+=26;
arr[i]-=b;
}
else
{
if(int (arr[i])-b<65) arr[i]+=26;
arr[i]-=b;
}
}
}
}
cout<<arr;
return 0;
}
Объяснение:
код на с++ для примера
пункт со сдвигом букв сам сделаешь
P. S. у меня на 5 они сдвигаются,
1) все элементы окажутся равны 9
Объяснение:
Заполнение массива:
для i от 0 до 10 выполнить a[i] = i - 1
i = 0 a[0] = 0 - 1 = -1
i = 1 a[1] = 1 - 1 = 0
i = 2 a[2] = 2 - 1 = 1
и т.д.
Нетрудно заметить, что все элементы будут на 1 меньше своего индекса
Изменение массива:
для i от 10 до 1 выполнить a[i-1] = a[i]
i = 10 a[10-1] = a[10] a[9] = a[10] a[9] = 9, т.к. первоначально элемент на минус один меньше своего индекса
i = 9 a[9-1] = a[9] a[8] = a[9] a[8] = 9, т.к. a[9] = 9
i = 8 a[8-1] = a[8] a[7] = a[8] a[7] = 9, т.к. a[8] = 9
и т.д.
Нетрудно заметить, что все элементы будут равны 9