Даны три слова. Напечатать те буквы слов, которые есть в одном из слов - 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; - завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д