Advertisement
VariableRiw

MaxLenWord

Mar 22nd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #define MAXLENGTH 100
  4. int main(void)
  5. {
  6.     char line[MAXLENGTH];
  7.     int len, maxs, i, id, count, flag, c, n, twin, status ,nw, sl;  // с - переменная для сравнения символов
  8.     setlocale(LC_ALL, "Rus");           // n - последний символ в массиве, заменяющийся на конец строки
  9.     status = 0;                         // в слове или нет
  10.     flag = 0;                           // избежание пробелов в близницах
  11.     nw = 0;                             // количество слов
  12.     count = 0;                          // количество символов в слове
  13.     id = 0;                             // номер первого символа самого длинного слова
  14.     i = 0;                              // счётчик для for
  15.     maxs = 0;                           // длина самого большого слова
  16.     len = 0;                            // длина слова
  17.     sl = 0;                             // счётчик для близнеца
  18.     twin = 0;                           // близнец
  19.     printf("Сколько будет символов в строке? (Измените MAXLENGHT, если их будет больше 100): ");
  20.     scanf_s("\n%d", &n);
  21.     printf("Введите строку: \n\n");
  22.     while ((c = getchar()) != '@')
  23.     {
  24.         line[i] = c;
  25.         i++;
  26.         len++;
  27.         line[n] = '\0';
  28.         if ((c == ' ') || (c == ',') || (c == '\n') || (c == '.') || (c == '\t'))
  29.         {
  30.             status = 0;
  31.         }
  32.         else if (status == 0)
  33.         {
  34.             status = 1;
  35.             nw++;
  36.         }
  37.     }
  38.     for (i = 0; i < len; i++)
  39.     {
  40.  
  41.         if ((line[i] != ' ') && (line[i] != ',') && (line[i] != '\n') && (line[i] != '.') && (line[i] != '\t') && (line[i] != '!') && (line[i] != '?') && (line[i] != ';') && (line[i] != ':'))
  42.         {
  43.             count++;
  44.         }
  45.         else
  46.         {
  47.             if (count > 0)
  48.                 flag = 1;
  49.             if (twin == count)
  50.                 sl = 1;
  51.             else
  52.                 sl = 0;
  53.             if (count > maxs)
  54.             {
  55.                 maxs = count;
  56.                 id = i - count;
  57.                 twin = count;
  58.             }
  59.            
  60.             count = 0;
  61.  
  62.         }
  63.     }
  64.     if (twin == count)
  65.         sl = 1;
  66.     else if ((twin != count) && (count > 0))
  67.         sl = 0;
  68.     if (count > maxs)
  69.     {
  70.         maxs = count;
  71.         id = i - count;
  72.         twin = count;
  73.     }
  74.     if ((flag == 1) && (twin == maxs) && (nw > 1) && (sl==1))
  75.         printf("Ошибка! Среди введённых слов нет самого длинного. Введите слова разной длины!\n");
  76.     else
  77.     {
  78.         printf("\nСамое длинное слово: ");
  79.         for (i = id; i < id + maxs; i++)
  80.         {
  81.             putchar(line[i]);
  82.         }
  83.         printf("\nДлина самого большого слова равна: %d\n", maxs);
  84.     }
  85.     system("pause");
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement