//Заголовочные файлы. #include //Содержит функции ввода-вывода. #include //Содержит функции консольного ввода-вывода(В нашем случае - getch()). int main() //Функция с которой начинается выполнение программы. { char s1[200],s2[200]; //Объявление двух символьных массивов на 200 элементов. int bykvi1[25], bykvi2[25]; //Объявление двух целочисленных массивов на 25 элементов(наверное, надо на 26). int i=0; //Объявление целочисленной переменной и присваивание ей значения 0. printf("Enter first string(EN):\n"); //Вывод строки gets(s1); //Считывание строки в массив s1 printf("Enter second string(EN):\n"); //Вывод строки gets(s2);//Считывание строки в массив s2 // a-z:97-122, 26 for(int j=0;j<26;j++) //Цикл со счётчиком на 26 итераций. { //Заполнение массивов нулями. bykvi1[j]=0; bykvi2[j]=0; } while(s1[i]!='.') //Пока элемент массива s1 не равен символу точки { if(s1[i]=='\0') //Если элемент массива s1 равен нулевому символу, break; //...тогда прервать выполнение цикла. bykvi1[(s1[i]-97)]=1; //Присвоить единицу по такому-то индексу. i++; //Инкремент. } i=0; //Обнуление переменной. //То же самое, только для второй пары массивов. while(s2[i]!='.') { if(s2[i]=='\0') break; bykvi2[(s2[i]-97)]=1; i++; } for(int j=0;j<26;j++) //Цикл со счётчиком на 26 итераций. { if(bykvi1[j]==0 && bykvi2[j]>0) //Если элемент массива bykvi1 равен нулю, и если элемент массива bykvi2 больше нуля(почему бы не написать: "==1"?). { printf("In the first sentence is not enough letter: %c\n",(char)(j+97)); //Вывести строку где говорится о том, какой буквы не хватает в первой строке. } if(bykvi1[j]>0 && bykvi2[j]==0) //Если элемент массива bykvi1 больше нуля, и если элемент массива bykvi2 равен нулю. { printf("In the second sentence is not enough letter: %c\n",(char)(j+97)); //Вывести строку где говорится о том, какой буквы не хватает во второй строке. } } getch(); //Ожидать нажатие клавиши для завершения программы. }