Даны три слова. Напечатать те буквы слов, которые есть в одном из слов - C (СИ)
Формулировка задачи:
Условие:
Даны три слова. Напечатать только те буквы слов, которые есть только в одном из слов.*Повторяющиеся буквы каждого слова рассматриваются*
Листинг программы
- #include <stdio.h>
- #include <ctype.h>
- void main(void)
- {
- const char str1[]={0};
- const char str2[]={0};
- int i,j;
- printf("Enter 1: ");
- scanf("%s",str1);
- printf("Enter 2: ");
- scanf("%s",str2);
- //для 1-ого слова
- printf("# 1: ");
- for(i=0;i<strlen(str1);i++){
- for(j=0;j<strlen(str2);j++){
- if(str1[i]!=str2[j]) printf("%c",str1[i]);
- }
- }
- //для 2-ого слова
- printf("\r\n# 2: ");
- for(i=0;i<strlen(str2);i++){
- for(j=0;j<strlen(str1);j++){
- if(str2[i]!=str1[j]) printf("%c",str2[i]);
- }
- }
- }
Решение задачи: «Даны три слова. Напечатать те буквы слов, которые есть в одном из слов»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #define N 3
- #define M 30
- int main()
- {
- char str[N][M];
- int i, j, k, q, flag = 0;
- for(i = 0; i < N; i++){
- printf("Enter word %d\n", i + 1);
- fgets(str[i], M, stdin);
- }
- for(i = 0; i < N; i++){
- for(j = 0; str[i][j]; j++, flag = 0){
- for(k = 0; k < N; k++){
- if(k != i)
- for(q = 0; str[k][q]; q++){
- if(str[i][j] == str[k][q]){
- flag = 1;
- break;
- }
- }
- }
- if(!flag)
- putchar(str[i][j]);
- }
- }
- return 0;
- }
Объяснение кода листинга программы
В этом коде пользователь вводит три слова, затем программа ищет буквы, которые есть хотя бы в одном из слов, и выводит их на экран. Вот список элементов кода с их номерами:
- #include
- подключает файл стандартного ввода/вывода - #include
- подключает файл стандартных библиотек - #define N 3 - определяет количество слов
- #define M 30 - определяет максимальную длину слов
- int main() - определяет основную функцию программы
- char str[N][M]; - объявляет массив строк для хранения слов
- int i, j, k, q, flag = 0; - объявляет переменные для циклов и флаг
- for(i = 0; i < N; i++){ - цикл по словам
- printf(
Enter word %d\n
, i + 1); - вывод приглашения для ввода слова - fgets(str[i], M, stdin); - считывание слова из стандартного ввода
- for(i = 0; i < N; i++){ - цикл по словам
- for(j = 0; str[i][j]; j++, flag = 0){ - цикл по буквам слова
- for(k = 0; k < N; k++){ - цикл по словам
- if(k != i) - условие для проверки только не текущего слова
- for(q = 0; str[k][q]; q++){ - цикл по буквам слова
- if(str[i][j] == str[k][q]){ - условие для проверки совпадения букв
- flag = 1; - установка флага при совпадении
- break; - выход из внутреннего цикла при совпадении
- } - закрывает условие внутреннего цикла
- if(!flag) - условие для проверки флага
- putchar(str[i][j]); - вывод буквы на экран
- } - закрывает условие внешнего цикла
- return 0; - завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д