Для каждой буквы первого слова определить, входит ли оно во второе слово - 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.

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


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

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

13   голосов , оценка 3.615 из 5
Похожие ответы