Вывод printf - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет всем, я тут начал изучать язык си и вот столкнулся с проблемой. Программа преобразует массив [a, b, c, d] в [b, c, d, a]. В принципе работает но выводит лишние символы "MMMMM" вот код:
#include <stdio.h>
#include <locale.h>

int main(void)
{
    char *locale = setlocale(LC_ALL, "");
 
    int i, j, t;
    char arr[] = { 'a', 'b', 'c', 'd' };
 
    printf("Исходный порядок букв: ");
    for (i = 0; i < arr[i]; i++)
        printf("%c", arr[i]);
 
    printf("\n");
 
    printf("Изменненый порядок букв: ");
    for (j = 0; j < arr[j]; j++)
    {
        t = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = t;
        printf("%c", arr[j]);
 
    }

    printf("\n");
 
    return 0;
}
а вот вывод:

Исходный порядок букв: abcd Изменненый порядок букв: bcdММММММММa

не могу понять откуда символы MMMMM берутся

Решение задачи: «Вывод printf»

textual
Листинг программы
printf("Изменненый порядок букв: ");
    for (j = 0; j < arr[j]; j++)
    {
        t = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = t;
        printf("%c", arr[j]);
 
    }

Объяснение кода листинга программы

  1. Переменная j инициализируется значением 0.
  2. Переменная t инициализируется значением arr[j].
  3. В цикле for перебираются все элементы массива arr, начиная с индекса 0 и до элемента с индексом arr[j].
  4. В каждой итерации цикла значение переменной t присваивается значению элемента массива arr с индексом j.
  5. Значение элемента массива arr с индексом j + 1 присваивается значению переменной arr[j].
  6. Значение переменной t присваивается значению элемента массива arr с индексом j + 1.
  7. В каждой итерации цикла выводится значение элемента массива arr с индексом j с помощью функции printf.
  8. Значение переменной j увеличивается на 1 после каждой итерации цикла.
  9. Цикл выполняется до тех пор, пока значение переменной j меньше значения arr[j].
  10. Значение переменной arr[j] равно количеству элементов в массиве arr.
  11. Значение переменной j увеличивается на 1 после каждой итерации цикла.
  12. В каждой итерации цикла значение переменной arr[j + 1] присваивается значению переменной t.
  13. Значение переменной t присваивается значению элемента массива arr с индексом j + 1.
  14. Значение переменной arr[j + 1] присваивается значению переменной t.
  15. Значение переменной t выводится с помощью функции printf.
  16. Значение переменной j увеличивается на 1 после каждой итерации цикла.
  17. Цикл выполняется до тех пор, пока значение переменной j меньше значения arr[j].
  18. Значение переменной arr[j + 1] присваивается значению переменной t.
  19. Значение переменной t присваивается значению элемента массива arr с индексом j + 1.
  20. Значение переменной arr[j + 1] присваивается значению переменной t.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы