Пройти по алфавиту несколько раз и найти букву с кодом 45 - C (СИ)

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

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

Допустим есть алфавит из 33 букв. нужно найти букву с кодом 45. как сделать чтобы вот мы прошли 33 буквы а потом начали заново алфавит проходить продолжая считать 34,35,36,......,45. и вывести на экран эту букву. делаю с помощью цикла for(i=0;i<33;i++) но как только пройду 33 буквы то цикл прерывается и пишет что буква не найдена.

Решение задачи: «Пройти по алфавиту несколько раз и найти букву с кодом 45»

textual
Листинг программы
#include <stdio.h>
 
const char ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
 
int main(void) {
    unsigned n;
    
    while ( printf("n = ") && scanf("%u", &n) == 1 )
        printf("alpha -> %c\n", ALPHABET[n % (sizeof(ALPHABET) - 1)]);
    
    return 0;
}

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

В этом коде:

  1. Объявлен массив ALPHABET, содержащий строку abcdefghijklmnopqrstuvwxyz, соответствующую английскому алфавиту.
  2. В функции main() объявлена переменная n типа unsigned, которая будет использоваться для перебора букв алфавита.
  3. В цикле while программа запрашивает у пользователя ввод значения переменной n (это может быть любая целая неотрицательная цифра).
  4. Внутри цикла программа выводит на экран букву алфавита с индексом n % (sizeof(ALPHABET) - 1), где % - оператор взятия остатка от деления.
  5. Размер массива ALPHABET - 1 равен 26, так как в нем 26 букв алфавита.
  6. Если пользователь ввел ноль, цикл while прекращается и программа завершается.
  7. Возвращаемое значение функции main() равно 0, что означает успешный конец работы программы.

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

7   голосов , оценка 3.286 из 5