Строку «Программа» превратить в «ргамамроП» - C (СИ)
Формулировка задачи:
Дана строка -предложение. Зашифровать ее, поместив вначале все символы, расположенные
на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на
нечетных позициях (например, строка «Программа» превратится в «ргамамроП»).
Подскажите что не так в коде.
#include <stdio.h> #include <string.h> int main(){ char s[100]; char s1[100]; int i,j=0; printf("Enter string: "); gets(s); for ( i=0; i<strlen(s);i++){ if (i%2==0) strcpy(s1,s); } for ( i=strlen(s); i>0;i--){ if ((i%2)!=0) strcpy(s1,s); } printf("%s\n",s1); return 0; }
Решение задачи: «Строку «Программа» превратить в «ргамамроП»»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(){ char s[100]; char s1[100]; int i,j,k; printf("Enter string: "); gets(s); j = 0; for ( i=1; i<strlen(s);i = i+2) { s1[j] = s[i]; j++; } if (strlen(s)%2 != 0) { i = strlen(s)-1; } else i = strlen(s)-2; for ( i; i>=0;i= i-2 ) { s1[j] = s[i]; j++; } s1[strlen(s)]='\0'; printf("%s\n",s1); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и вводом-выводом.
- Объявление переменных: строки s и s1, а также индексы i, j, k.
- Ввод строки от пользователя с помощью функции gets().
- Инициализация счётчика символов в новой строке s1 значением 0.
- В цикле, начиная со второго символа исходной строки (исключая 1-й символ), копируются парные символы в новую строку s1.
- Если длина исходной строки нечётная, то в новую строку s1 добавляется последний символ исходной строки.
- Если длина исходной строки чётная, то в новую строку s1 добавляется предпоследний символ исходной строки.
- В обратном порядке до тех пор, пока не будут использованы все символы исходной строки, символы копируются в новую строку s1.
- Добавляется нулевой символ в конец новой строки s1.
- Выводится новая строка s1.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д