Для каждой буквы первого слова определить, входит ли оно во второе слово - C (СИ)
Формулировка задачи:
Программа почти готова, но есть небольшой косяк в условии , прошу помощи. Проблема видна на картинке.
Суть задачи:
Даны два слова. Для каждой буквы первого слова определить, входит ли оно во второе слово. Повторяющиеся буквы первого слова не рассматривать. Например, если заданные слова
процессор
иинформация
, то для букв первого из них ответом должен быть: НЕТ ДА ДА ДА НЕТ НЕТ#include <math.h> #include <conio.h> #include <string.h> #include <stdio.h> #define R " .,;:\t\n" int main() { char str[256]; char str1[256]; int n,k,p = 0,i,j; gets(str); gets(str1); for(i=0;i<strlen(str);i++) { n = 0; for(k=0;k<i;k++) if(str[i] == str[k]) p++; if(p==0) { for(j=0;j<strlen(str1);j++) if(str[i] == str1[j]) n++; } if(!n) printf("No "); else printf("Yes "); } getch(); return 0; }
Решение задачи: «Для каждой буквы первого слова определить, входит ли оно во второе слово»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(int argc, char* argv[]) { char first[256]; char second[256]; int i, j, end; scanf("%255s", first); scanf("%255s", second); end = strlen(first); for (i = end - 1; 0 < i; --i) { for (j = i - 1; (0 <= j) && (first[i] != first[j]); --j) { ; } if (j < 0) { break; } else { end--; } } for (i = 0; i < end; ++i) { for (j = i - 1; (0 <= j) && (first[i] != first[j]); --j) { ; } if ((j < 0) && strchr(second, first[i])) { printf("yes "); } else { printf("no "); } } return 0; }
Объяснение кода листинга программы
В этом коде осуществляется сравнение каждой буквы первого слова (предполагая, что это строка, сохраненная в переменной first
) со всеми последующими буквами этого же слова (сохраненного в переменной second
). Если буква из первого слова присутствует во втором слове, то выводится yes
, в противном случае выводится no
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д