Вывод номеров встречающихся букв во входном потоке - C (СИ)

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

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

В теме книги обсуждались указатели, но у меня они употреблены номинально и можно было обойтись без них. Можно ли более простой способ для решения данной задачи найти с применением указателей?
Листинг программы
  1. #include <stdio.h>
  2. void sign(char *a);
  3. int main(void)
  4. {
  5. char ch;
  6. while((ch = getchar()) != EOF)
  7. {
  8. sign(&ch);
  9. }
  10. return 0;
  11. }
  12. void sign(char *a)
  13. {
  14. int i = 0;
  15. char m[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
  16. int k[] = {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26};
  17. if(*a >= 'A' && *a <= 'Z' || *a >= 'a' && *a <='z')
  18. {
  19. while(*a != m[i])
  20. {
  21. ++i;
  22. }
  23. printf("%c - %d буква в алфавите\n", m[i], k[i]);
  24. }
  25. i = 0;
  26. }

Решение задачи: «Вывод номеров встречающихся букв во входном потоке»

textual
Листинг программы
  1. //gcc 5.4.0
  2.  
  3. #include  <stdio.h>
  4.  
  5. int main(void)
  6. {
  7.     for (int i='a'; i<'z'; i++)
  8.         printf("%c = %d\n", i, i);
  9.     return 0;
  10. }

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

В этом коде используется цикл for для перебора всех букв от 'a' до 'z' (включительно). На каждой итерации цикла выводится сообщение в формате буква = число, где буква — это текущее значение переменной i, а число — это значение этой же переменной i. Таким образом, программа выводит пары сообщений буква = число для каждой буквы от 'a' до 'z'. Возвращаемое значение 0 оператором return означает успешный конец работы программы.

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы