Advertisement
CosmicFox33

Untitled

Nov 23rd, 2021
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define kmax 10
  5. #define lmax 20
  6. #include <locale.h>
  7. #include <stdbool.h>
  8.  
  9. void z1(char arr[kmax+1][lmax+1], char  subs[kmax*kmax+kmax][lmax+1], int *Col, int k)
  10. {
  11.     char alph[66]="чсмитьбюфывапролджэйцукенгшщзхъЯЧСМИТЬБЮФЫВАПРОЛДЖЭЙЦУКЕНГШЩЗХЪёЁ";
  12.     char c, s;
  13.     int i, j, col=0, l, p;
  14.     printf("Задание №1. \n");
  15.     for(i=0;i<k;i++)
  16.     {
  17.         c=arr[i][0];
  18.         for(j=0;arr[i][j]!='\0';j++)
  19.         {
  20.             c=arr[i][j];
  21.             s=arr[i][j+1];
  22.             if(strchr(alph, c)!=NULL)
  23.             for(l=j+1;arr[i][l]!='\0';l++)
  24.             {
  25.                 s=arr[i][l];
  26.                 if(strchr(alph, s)!=NULL)
  27.                 {
  28.                 for(p=0;p<l-j-1;p++) subs[col][p]=arr[i][j+1+p];
  29.                 if(l-j!=1)
  30.                 {subs[col][p]='\0';
  31.                 col++;
  32.                 }
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     if(col==0) printf("Такие подстроки не найдены.\n");
  38.     for(i=0;i<col;i++)
  39.     {
  40.         puts(subs[i]);
  41.     }
  42.     *Col=col;
  43. }
  44.  
  45. void z2(char subs[kmax*kmax+kmax][lmax+1], int col, int *Mini)
  46. {
  47.     bool a;
  48.     int mins, flag, i, j;
  49.     unsigned char minc;
  50.     printf("Задание №2.\n");
  51.     if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
  52.     else
  53.     {
  54.     flag=0;
  55.     minc='я';
  56.     mins=0;
  57.     for(i=0;i<col;i++)
  58.     {
  59.         for(j=0;subs[i][j]!='\0';j++)
  60.         {
  61.             a=(int)subs[i][j]<(int)minc || ((int)subs[i][j]==(int)minc && flag==0);
  62.             if(subs[i][j]<minc || (subs[i][j]==minc && flag==0))
  63.             {
  64.                 flag=1;
  65.                 minc=subs[i][j];
  66.                 mins=i;
  67.             }
  68.  
  69.         }
  70.     }
  71.     puts(subs[mins]);
  72.     }
  73.     *Mini=mins;
  74. }
  75.  
  76. void z3(char subs[kmax*kmax+kmax][lmax+1], int col, int mins)
  77. {
  78.     int L, i;
  79.     char c;
  80.     printf("Задание №3.\n");
  81.     if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
  82.     else
  83.     {
  84.         L=0;
  85.         for(i=0;subs[mins][i]!='\0';i++)
  86.         {
  87.             c=subs[mins][i];
  88.             if(!(c>='0' && c<='9' && ((int)c)%2==0)) subs[mins][L++]=c;
  89.         }
  90.         subs[mins][L]='\0';
  91.         if(L==0) printf("Строка полностью удалена. \n");
  92.         else
  93.         {
  94.             if(L==i) printf("Строка осталась без изменений. \n");
  95.             else puts(subs[mins]);
  96.         }
  97.     }
  98. }
  99.  
  100. int main()
  101. {
  102.     system("chcp 1251");
  103.     system("cls");
  104.     setlocale(LC_ALL, "Russian");
  105.     int i, j, k, l, p, col, flag, ms=0;
  106.     unsigned char arr[kmax+1][lmax+1], subs[kmax*kmax+kmax][lmax+1], c, s, minc, mins, L;
  107.  
  108.     printf("Лабораторная работа №4.\n");
  109.     do
  110.     {
  111.         printf("Введите k, не превышающее %d:", lmax);
  112.         scanf("%d", &k);
  113.         if(k<=0 || k>kmax) printf("k введено некорректно, повторите ввод.\n");
  114.         while(getchar()!='\n');
  115.     }while(k<=0 || k>kmax);
  116.  
  117.     printf("Введите строки (длина не должна превышать %d).\n", lmax);
  118.     for(i=0;i<k;i++)
  119.     {
  120.         printf("%d: ", i + 1);
  121.         fgets(arr[i], lmax, stdin);
  122.     }
  123.  
  124.     z1(arr, subs, &col, k);
  125.     z2(subs, col, &ms);
  126.     z3(subs, col, ms);
  127.  
  128.     return 0;
  129. }
  130.  
  131.  
  132.  
  133.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement