Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 20.04.2016
Сообщений: 2
1

Low-skill-шифрование

06.06.2016, 15:08. Просмотров 434. Ответов 1
Метки нет (Все метки)


Зацените код: он работает, но кажется, что алгоритм довольно кривой.
Дана строка-предложение. Зашифровать ее, поместив вначале все
символы, расположенные на четных позициях строки, а затем, в обратном
порядке, все символы, расположенные на нечетных позициях (например,
строка «Программа» превратится в «ргамамроП»)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream>
using namespace std;
int main()
{
    const int max=80;
    char str[max];
    char odd[max/2],even[max/2];
    cout<<"Enter string: ";
    cin.get(str,max);
    int k=strlen(str);
    for(int i=0,j=0,k=0; i<strlen(str); i=i++)                    //запоминание символов на четных и нечетных позициях
        {
            if(i>=strlen(str)-2)
            {
                if(i%2) 
                    {
                        even[j++]=str[i];
                        even[j++]='\0';                            //заканчиваем строку четных, если добавляется последнее четное
                }
                else 
                    {
                        odd[k++]=str[i];
                        odd[k++]='\0';                            //заканчиваем строку нечетных, если добавляется последнее нечетное
                }
            }
            else
            {
                if(i%2) even[j++]=str[i];
                else odd[k++]=str[i];
            }
    }
    for(int i=0,k=strlen(odd)-1; i<strlen(odd)/2+strlen(odd)%2; i++,k--)    //меняем порядок нечетных элементов
        {
            char temp=odd[i];
            odd[i]=odd[k];
            odd[k]=temp;
    }
    for(int i=0; i<strlen(str)/2; i++)                                      //переписываем 1-ю часть строки в четные элементы
        str[i]=even[i];
    for(int i=strlen(str)/2,j=0; i<strlen(str); i++,j++)                    //переписываем 2-ю часть строки в нечетные элементы в уже отсортированном порядке
        str[i]=odd[j];
    cout<<"New string: "<<str<<endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2016, 15:08
Ответы с готовыми решениями:

G Skill F3-17000CL9-4GBXM
Подарили память DIMM3:G Skill F3-17000CL9-4GBXM, поставил её на ASUS Rampage III Formula с...

Блокировка Анти Чита в Skill 2
Здравствуйте у меня проблема, Я играю в игру в которой зашита программа Античит, Сейчас я не могу в...

Разгон g.skill aegis 3000
Здравствуйте.Поменял свой фх и рх 560 .Купил ryzen 5 2600,мать asrock b450 pro4 ОЗУ g.skill aegis...

Gui (skill bar) singleton
Добрый день ! Ребят у меня такая задача . Первая сцена - сцена авторизации . Проверка доступных...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
1
1 / 1 / 3
Регистрация: 02.09.2015
Сообщений: 13
06.06.2016, 15:53 2
Я заметил, что можно чуть упростить:
C++
1
2
3
4
5
6
   for (int i = 0, k = strlen(odd) - 1; i<strlen(odd) / 2 + strlen(odd) % 2; i++, k--)    //меняем порядок нечетных элементов
   {
      char temp = odd[i];
      odd[i] = odd[k];
      odd[k] = temp;
   }
заменить на
C++
1
reverse(odd, &odd[strlen(odd)]);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 15:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Разгон G.Skill Aegis 2 планки по 8 гб
Привет! Собрал новый ПК, надеюсь на помощь с разгоном оперативки) Оперативка G.Skill Aegis 2...

2x4gb 2400 mhz g.skill ram
1 вставляю комп работает , вторую ставлю , монитор вообще не дает сигнала , на видео карте кулеры...

Проблема с XMP G.Skill Trident Z 3200
Добрый вечер. Столкнулся с проблемой на памяти DDR4 G.Skill tridentZ 3200 cl 16 F4-3200C16D-16GTZR...

G.Skill Trident Z Royal 3200 МГц (14-14-14-34)
скажите плиз 18к норм цена за такую память?

Asus-z170 и skill-aegis-16gb-ddr4
Для этой материнской платы https://www.computeruniverse.ru/products/90613271/asus-z170-a.asp ...

G.Skill RipjawsX F3-14900CL9D-8GBXL совместимость друг с другом
Здравствуйте! в конце 2013г. я приобрел себе данную оперативную память G.Skill RipjawsX...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.