Дана строка. Известно, что она содержит ровно две одинаковые буквы. Найдите эти буквы - C (СИ)
Формулировка задачи:
Дана строка. Известно, что она содержит ровно две одинаковые буквы. Найдите эти буквы. Гарантируется, что повторяются буквы только одного вида.
Входные данные
На вход подается 1 строка.
Выходные данные
Необходимо вывести букву, которая встречается в строке дважды.
Примеры
входные данные
fif
выходные данные
f
Скидываю код, подскажите, что не так.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i,j; char str[100]; char n; scanf("%s",&str); for(n>='a'; n<='z';n++) { i=0; } for(j=1;j<strlen(str);j++) if(str[j]==n) i++; if(i==2) printf("%c",n); return 0; }
Решение задачи: «Дана строка. Известно, что она содержит ровно две одинаковые буквы. Найдите эти буквы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i,j,flag=0; char str[100]; char n; gets(str); for(i=0;i<strlen(str);i++) { for(j=i;j<strlen(str);j++) if(str[i]==str[j+1]) { flag=1; break; } if(flag==1) break; } printf("%c",str[i]); return 0; }
Объяснение кода листинга программы
В этом коде на языке C выполняется следующая последовательность действий:
- Подключаются необходимые библиотеки.
- Задаются начальные значения переменных: — i, j — счётчики, которые будут использоваться в циклах; — flag — флаг, который будет менять своё значение в процессе выполнения программы.
- С помощью функции gets(str) вводится строка.
- Два вложенных цикла выполняются до тех пор, пока не будет найдена пара одинаковых букв. Для этого: — Первый цикл проходит по всем символам строки. — Второй цикл начинается с i и проходит до конца строки, но проверяет только чётные индексы (при условии, что длина строки четная), так как буквы в этой строке уже найдены. — Если текущий символ в строке совпадает с последующим, то флаг становится равным 1 и цикл прерывается.
- Если пара одинаковых букв не найдена, то выводится сообщение об ошибке.
- Выводится найденная буква.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д