https://github.com/ashwinidotx/Daily-Coding-Problmes/blob/master/Operations%20with%20names.c
Посмотрите мой код, я могу напечатать предложение, но компилятор не выполняет обратный цикл; Вот фрагмент кода, который я использую, чтобы перевернуть строку.
for (i=0;i<size;i++)
reverse[i]=name[size-i-1];
printf("\nReverse: ");
for(i=0;i!='\0';i++)
printf("%c",reverse[i]);
Вам предлагается создать минимальный воспроизводимый пример и опубликовать его, а не ссылку на внешний код. «но компилятор не выполняется» нет, здесь не происходит этого. Используйте ваш отладчик, чтобы отслеживать выполнение вашей программы построчно. Наблюдайте, как переменные меняются во время выполнения. Также возьмите книгу C и выполняйте упражнения.





Вы проверяете i!='\0', он должен быть reverse[i]!='\0'
printf("\nReverse: ");
for(i=0;reverse[i]!='\0';i++)
printf("%c",reverse[i]);
Вы забыли завершить массив charreverse нулевым ограничителем после первого цикла for. Итак, добавьте следующий после первой петли for. В противном случае вы в конечном итоге будете печатать ненужные символы на своем выходе, поскольку вы будете читать сверх того, что разрешено.
reverse[i] = '\0';
Вы должны сравнить символ в массиве reverse с нулевым ограничителем. Вместо этого вы сравниваете с ним i. Итак, измените второй цикл for следующим образом:
for(i=0; reverse[i]!='\0'; i++)
printf("%c",reverse[i]);
хорошо, поэтому я изменил свой код на этот, и теперь он выводит значение мусора для (i = 0; i <size; i ++) reverse [i] = name [size-i-1]; printf ("\ nРеверс:"); for (i = 0; i <size; i ++) {printf ("% c", reverse [i]);}
Я тестировал это на своем ПК. Работает нормально. Вы сделали то и другое, что я предложил?
Код, который вы вставили в комментарий, не содержит предложенных мной изменений.
да, я скопировал не тот код. Я отредактировал это потом
Компилятор ничего не выполняет, это просто компилирует вашей программы. Кстати, прочтите это: Как спросить и это: минимальный воспроизводимый пример