Напечатать текст, образованный символами с порядковыми номерами 56, 89, 84 и 69 - C (СИ)
Формулировка задачи:
Напечатать текст, образованный символами с порядковыми номерами 56, 89, 84 и 69 и текст с изменением регистра.
Помогите пожалуйста.
Решение задачи: «Напечатать текст, образованный символами с порядковыми номерами 56, 89, 84 и 69»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> const int N = 200; int main() { char arr[N]; int i = 0, nc = 0, c; while(1){ c = rand()%36 + 55; if(c == 56 || c == 69 || c == 84 || c == 89){ arr[i] = c; printf("%c", c); ++nc; if(nc % 5 == 0) printf("\t"); if(nc == N)break; ++i; } } printf("\n"); for(i = 0; i < N; ++i){ if(arr[i] == 56) printf("%c", 42); else printf("%c", arr[i] + 32); ++nc; if(nc % 5 == 0) printf("\t"); } return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные: массив символов
arr
и целочисленная переменнаяi
для отслеживания индекса. Размер массиваN
равен 200. - В цикле
while(1)
случайным образом генерируются числа от 56 до 90 (включительно). - Если сгенерированное число равно 56, 69, 84 или 89, оно записывается в массив
arr
и выводится на экран. - Переменная
nc
отслеживает количество уже выведенных символов. - Если
nc
увеличивается на 5 (то есть, выводится табуляция), и еслиnc
достигает 200 (что означает, что в массиве больше нет символов), цикл прерывается. - После первого цикла выводится символ новой строки.
- Во втором цикле перебираются элементы массива
arr
. Если элемент равен 56, выводится символ(обратная косая черта). В противном случае выводится символ, значение которого равно
arr[i] + 32` (то есть, символу добавляется 32 для получения символа, который следует за ним). - Переменная
nc
снова отслеживает количество выводимых символов, и еслиnc
увеличивается на 5, выводится табуляция. - Если все символы массива были выведены, возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д