Смайлы в выводе программы - C (СИ)
Формулировка задачи:
Почему программа выводит смайлы?
#include <stdio.h> int main(void) { char glass[] ={'a','e','o','i','u','y'}; char str[100]; int i = 0, j = 0, k = 0, err=0; printf("Enter the string:"); gets(str); for (i = 0; glass[i] != '\0'; i++) { k = 0; for (j = 0; str[j] != '\0'; j++) { if (str[j] == glass[i]) { k = 1; err++; break; } } if (k != 1) printf("%c", glass[i]); } if(err==6) printf("All the vowels in the line are present!"); return 0; }
Решение задачи: «Смайлы в выводе программы»
textual
Листинг программы
#include <stdio.h> int main(void) { char glass[] = "eyuioa"; char str[100]; int i = 0, j = 0, err=0; printf("Enter the string:\n"); gets(str); for (i = 0; glass[i]; i++){ for (j = 0; str[j]; j++){ if (str[j] == glass[i]){ err++; putchar(str[j]); break; } } } if(err==6) printf("\nAll the vowels in the line are present!"); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные: стек str (строка) и стек glass (строка).
- Инициализированы значения строк: str — пустая строка, glass —
eyuioa
. - Инициализированы три переменные: i — счетчик для стек str, j — счетчик для стек glass, err — счетчик для подсчета гласных в строке.
- Выводится приглашение для ввода строки.
- Вводится строка с помощью функции gets().
- Два вложенных цикла: — Первый цикл перебирает символы в стек glass. — Второй цикл перебирает символы в стек str. — Если символ в стеке str совпадает с симвомом в стеке glass, увеличивается счетчик err и выводится этот символ. — Циклы прерываются, если в стеке str не осталось символов или в стеке glass не осталось символов.
- Если количество гласных равно 6, выводится сообщение
All the vowels in the line are present!
. - Возвращается 0, заканчивая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д