Вывод 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]); }
Объяснение кода листинга программы
- Переменная
j
инициализируется значением 0. - Переменная
t
инициализируется значениемarr[j]
. - В цикле
for
перебираются все элементы массиваarr
, начиная с индекса 0 и до элемента с индексомarr[j]
. - В каждой итерации цикла значение переменной
t
присваивается значению элемента массиваarr
с индексомj
. - Значение элемента массива
arr
с индексомj + 1
присваивается значению переменнойarr[j]
. - Значение переменной
t
присваивается значению элемента массиваarr
с индексомj + 1
. - В каждой итерации цикла выводится значение элемента массива
arr
с индексомj
с помощью функцииprintf
. - Значение переменной
j
увеличивается на 1 после каждой итерации цикла. - Цикл выполняется до тех пор, пока значение переменной
j
меньше значенияarr[j]
. - Значение переменной
arr[j]
равно количеству элементов в массивеarr
. - Значение переменной
j
увеличивается на 1 после каждой итерации цикла. - В каждой итерации цикла значение переменной
arr[j + 1]
присваивается значению переменнойt
. - Значение переменной
t
присваивается значению элемента массиваarr
с индексомj + 1
. - Значение переменной
arr[j + 1]
присваивается значению переменнойt
. - Значение переменной
t
выводится с помощью функцииprintf
. - Значение переменной
j
увеличивается на 1 после каждой итерации цикла. - Цикл выполняется до тех пор, пока значение переменной
j
меньше значенияarr[j]
. - Значение переменной
arr[j + 1]
присваивается значению переменнойt
. - Значение переменной
t
присваивается значению элемента массиваarr
с индексомj + 1
. - Значение переменной
arr[j + 1]
присваивается значению переменнойt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д