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

Код к задаче: «Для каждой буквы первого слова определить, входит ли оно во второе слово - C (СИ)»

#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;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

13   голосов, оценка 3.615 из 5

Источник