16.04.2020, 09:01
общий
это ответ
Здравствуйте, niktop1!
Ниже текст программы. Комментарии есть, думаю все понятно. Для самодостаточности программы и удобства тестирования организован ввод слова с клавиатуры, хотя по условию задачи слово изначально "дано".
Написать можно компактнее, но текст станет менее читабельным.
Приложение:
#include <stdio.h>
int main()
{
char str[101]; /* строка для хранения слова, 100 символов + терминальный 0 */
int n[256]; /* массив, где хранятся счетчики символов */
int i; /* служебная переменная */
int cc; /* текущий рассматриваемый символ из слова */
printf("Введите слово: ");
scanf("%100s",str); /* считываем с клавиатуры слово, не более 100 символов */
for( i=0; i<256; i++ ) /* обнуляем счетчики */
n[i] = 0;
for (i=0; str[i]; i++) /* проходимся по всем введенным символам */
{
cc = (int) str[i]; /* берем очередной символ из строки */
if( n[cc] == 0 ) /* если такой символ еще не встречался */
n[cc]++; /* наращиваем счетчик и переходим к следующему символу */
else /* если такой символ уже встречался */
{
printf("Обнаружен повтор символа \'%c\'.\n",str[i]);
return 0; /* ответ получен, программа завершена */
}
}
/* если повторов в слове не обнаружено, то ответ получен, программа завершена */
printf("Повторов не обнаружено.\n");
return 0;
}