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

  1. Программа почти готова, но есть небольшой косяк в условии , прошу помощи. Проблема видна на картинке. Суть задачи: Даны два слова. Для каждой буквы первого слова определить, входит ли оно во второе слово. Повторяющиеся буквы первого слова не рассматривать. Например, если заданные слова процессор и информация , то для букв первого из них ответом должен быть: НЕТ ДА ДА ДА НЕТ НЕТC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #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;
}

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

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



Похожие ответы
  1. Перед каждой цифрой в строке вставить символ «N». СИ

  1. zss, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }Добавлено через 1 минутуQwerty_Wasd, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }

  1. Строка, содержащая произвольный текст, состоит не более чем из 255 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, v — 3 раза и т. д

  1. Нужно воспользоваться вложенными циклами чтобы написать программу, которая выводит на печать фигуру в виде пирамида(как на скрине)http://************/966d955e33913f4aa8302760519aa5fa Фигура разворачивается в зависимости от того, какой символ был введен. Есть внешний цикл(для обработки строк) и три внутренних(1 - для пробелов, 2 - для печати букв в порядке возр., 3 - для печати букв в порядке убыв.) Вообщем не понимаю как символы которые выводятся с помощью 3 внутр. цикла шли в обратном порядке, начиная со второго ряда. А АВА АВСВА ABCDCDA ABCDEDCBAC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 void four() {     int row, probel, left_char, right_char, col;     char ch;       printf("\nVvedite symbol: ");     scanf("%c", &ch);       for (row = 1; row <= 5; row++)     {         for (probel = 4; probel >= row; probel--)             printf(" ");           for (left_char = ch - 4, col = 1; col <= row; left_char++, col++)             printf("%c", left_char);                                                       for (right_char = ch - 4, col = 1; col <= row - 1; right_char++, col++)             printf("%c", right_char);           printf("\n");       }       return; }

  1. Нужна программа, в которую вводишь текст и она расставляет буквы по алфавиту (обязательно с помощью пузырьковой сортировки) и выводит на экран с пробелами между группой букв. Пример: Ввод: Annulo cingitul tenui, plano, nusquam cohaerente, ad eclipticam inclinato. Вывод: aaaaaaa cccc d eeeee g h iiiiiii lllll mm nnnnnnnnn oooo pp q r s ttttt uuuuu

  1. Помогите пожалуйста составить программу. Которая переписывает фразу, меняя первые и последние буквы слов на заглавные.

  1. Подскажите ошибку, которую допустила в программе. Задание такое: Вводится текст, за которым следует точка. В алфавитном порядке напечатать (по разу) все строчные русские буквы, входящие в этот текст. (требуется написать программу на языке СИ)C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include #include   int main() { char *user_input = malloc(sizeof(char)); char *output = malloc(sizeof(char)); int i = 0; int d = 0; int flag = 1; while (1) { scanf("%c", &user_input[i]); if (user_input[i] == '.') {user_input[i]='\0';break;} for (int j = 0; j < i; i++) { if (user_input[i] == output[j]) { flag = 0; break; } } if (flag) { output[d] = user_input[i]; d++; output =(char*) realloc(output, (d + 2) * sizeof(char)); } flag = 1; i++; user_input = (char*)realloc(user_input, (i + 1) * sizeof(char)); } printf("input %s",user_input); printf("output %s",output); char x; for (int m = 0; m < d; m++) { for (int j = d - 1; j > m; j--) { if (output[j - 1] > output[j]) { x = output[j - 1]; output[j - 1] = output[j]; output[j] = x; } } } output[d + 1] = '\0'; printf("%s", output); return 0; }

  1. надо что бы он прочитав последнею букву в предложение удалял все такие же буквы в самом предложение кроме нее самой!C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include   int main() {     char str[50];     gets(str);     int i,j;     char tmp=str[strlen(str)-1];     for (i=0;i

  1. Дано предложение. Удалить из каждого слова все повторяющиеся буквы, т.е. в каждом слове должны остаться только различные буквы.

  1. Вся задача: 1) записать файл из текстом 2) прочитать из файла текст 3) удвоить все гласные буквы 4) записать обратно в файл