Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 1
1

Зашифровать введенную с клавиатуры строку, поменяв местами первый символ с третьим, второй с четвертым и т. д

31.05.2017, 00:03. Показов 955. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если пересматривать каждый символ через цикл с нуля, то мы скорее всего вылетим из массива (mas[i]=t;mas[i+2]=mas[i]; mas[i+2]=t) , а если начинать с двух смотреть на 2 назад(mas[i-2]), то цикла не хватит, чтобы посмотреть все символы. Хелпаните нубцу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2017, 00:03
Ответы с готовыми решениями:

Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с четвертым и т. д.
Добрый день. Помогите пожалуйста с проблемой: "Зашифровать введенную с клавиатуры строку, поменяв...

Зашифровать введенную с клавиатуры строку, поменяв местами первый символ с третьим, второй с четвертым
Доброго времени суток! Кто может помогите пару заданий в контрольной.... темный лес, а разбираться...

Зашифровать строку, поменяв местами первый символ с третьим, второй с четвертым и т.д
Зашифровать введенную с клавиатуры строку символов, поменяв местами первый символ с третьим, второй...

Дана строка. Зашифровать строку, поменяв местами первый символ с третьим, второй с четвертым и т.д.
:) Здравствуйте! 3. Даны 2 предложения. В каком из них доля (%) буквы «б» больше? Определить...

4
0 / 0 / 1
Регистрация: 30.05.2017
Сообщений: 2
31.05.2017, 00:28 2
Почему вылетите-то?
Задайте условием выполнения цикла "номер элемента1 и номера элемента2 < числа элементов массива".
(Вы ведь циклом делаете?)
Например, так:

for ( i = 0, j = i+2; i < n, j < n; ++i, ++j)
{
}

Только у Вас что-то с "обменом" значениями напутано, два раза присваиваются разные значения одному и тому же элементу.
mas[i+2]=mas[i]; mas[i+2]=t

Для этой цели можно использовать ссылки на элементы массива.
0
Модератор
Эксперт функциональных языков программирования
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,626
31.05.2017, 14:23 3
Цитата Сообщение от Aksimka Посмотреть сообщение
mas[i]=t
Обмен должен начинаться с того, что мы запоминаем одно из значений во временную переменную: "t = ".
У Вас обмен начинается с того, что Вы затираете нужное значение элемента массива непонятно чем из временной переменной.
Писать русские слова латиницей - признак дурного тона. Не massiv, а array.


Цитата Сообщение от C Lady Посмотреть сообщение
for ( i = 0, j = i+2; i < n, j < n; ++i, ++j)
Нам не нужно два счётчика, так как мы можем легко получить один из другого.
Кроме того, Ваш код сначала поменяет элементы 0 и 2, затем 2 и 4, затем 4 и 6.... В результате значение нулевого элемента уедет в конец массива.
0
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
31.05.2017, 19:06 4
Цитата Сообщение от C Lady Посмотреть сообщение
Только у Вас что-то с "обменом" значениями напутано
а у вас с условием цикла.
0
Модератор
Эксперт функциональных языков программирования
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,626
01.06.2017, 10:37 5
C
1
2
3
4
5
6
7
8
9
for(i = 2; i < n - 1; i += 4)
{
  t = arr[i]; arr[i]= arr[i - 2]; arr[i - 2] = t;
  t = arr[i + 1]; arr[i + 1]= arr[i - 1]; arr[i - 1] = t;
}
if(n % 4 == 3) // (n & 3) == 3
{
  t = arr[n - 1]; arr[n - 1]= arr[n - 3]; arr[n - 3] = t;
}
Можно было бы добавить if и break в тело основного цикла, но лучше сравнивать один раз, чем на каждой итерации цикла. Обмен лучше вынести в inline функцию, чтобы не писать эту логику три раза.
0
01.06.2017, 10:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2017, 10:37
Помогаю со студенческими работами здесь

Зашифровать введённую с клавиатуры строку, поменяв местами первый символ со вторым, третий с четвёртым и т.д. Провести дешифровку
Зашифровать введённую с клавиатуры строку, поменяв местами первый символ со вторым, третий с...

Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с чет-вертым и т. д
Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с...

Преобразовать введенное с клавиатуры предложение, поменяв местами первое слово с третьим, второе с четвертым и т.д
Помогите пожалуйста с задачей. Преобразовать введенное с клавиатуры предложение, поменяв местами...

Переставить символы в строке, поменяв местами первый символ с последним, второй с предпоследним и т.д.
Ребят, нужна ваша помощь. Вот у меня задание Ввести с клавиатуры строку. Переставить в ней...

Зашифровать введенную с клавиатуры строку
Задание такое: Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со...

Зашифровать введенную с клавиатуры строку
Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru