Advertisement
CosmicFox33

LABA4

Nov 22nd, 2021
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.51 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. void z1(char arr[kmax+1][lmax+1], char  subs[kmax*kmax+kmax][lmax+1], int *Col, int k)
  9. {
  10.     unsigned char c, s;
  11.     int i, j, col=0, l, p, w, u;
  12.     printf("Задание №1. \n");
  13.     for(i=0;i<k;i++)
  14.     {
  15.         c=arr[i][0];
  16.         for(j=0;c!='\n';j++)
  17.         {
  18.             c=arr[i][j];
  19.             s=arr[i][j+1];
  20.             if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
  21.             for(l=j+2;s!='\n';l++)
  22.             {
  23.                 s=arr[i][l];
  24.                 if((s>='a'&&s<='z')||(s>='A'&&s<='Z'))
  25.                 {
  26.                 for(p=0;p<l-j-1;p++) subs[col][p]=arr[i][j+1+p];
  27.                 subs[col][p]='\0';
  28.                 col++;
  29.                 }
  30.             }
  31.         }
  32.     }
  33.     if(col==0) printf("Такие подстроки не найдены.\n");
  34.     for(i=0;i<col;i++)
  35.     {
  36.         puts(subs[i]);
  37.     }
  38.     *Col=col;
  39. }
  40.  
  41. void z2(char subs[kmax*kmax+kmax][lmax+1], int col, int *Mini)
  42. {
  43.     bool a;
  44.     int mins, flag, i, j;
  45.     unsigned char minc;
  46.     printf("Задание №2.\n");
  47.     if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
  48.     else
  49.     {
  50.     flag=0;
  51.     minc='я';
  52.     mins=0;
  53.     for(i=0;i<col;i++)
  54.     {
  55.         for(j=0;subs[i][j]!='\0';j++)
  56.         {
  57.             a=(int)subs[i][j]<(int)minc || ((int)subs[i][j]==(int)minc && flag==0);
  58.             if(subs[i][j]<minc || (subs[i][j]==minc && flag==0))
  59.             {
  60.                 flag=1;
  61.                 minc=subs[i][j];
  62.                 mins=i;
  63.             }
  64.  
  65.         }
  66.     }
  67.     puts(subs[mins]);
  68.     }
  69.     *Mini=mins;
  70. }
  71.  
  72. void z3(char subs[kmax*kmax+kmax][lmax+1], int col, int mins)
  73. {
  74.     int L, i;
  75.     unsigned char c;
  76.     printf("Задание №3.\n");
  77.     if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
  78.     else
  79.     {
  80.         L=0;
  81.         for(i=0;subs[mins][i]!='\0';i++)
  82.         {
  83.             c=subs[mins][i];
  84.             if(!(c>='0' && c<='9' && ((int)c)%2==0)) subs[mins][L++]=c;
  85.         }
  86.         subs[mins][L]='\0';
  87.         if(L==0) printf("Строка полностью удалена. \n");
  88.         else
  89.         {
  90.             if(L==i) printf("Строка осталась без изменений. \n");
  91.             else puts(subs[mins]);
  92.         }
  93.     }
  94. }
  95.  
  96. int main()
  97. {
  98.     system("chcp 1251");
  99.     system("cls");
  100.     setlocale(LC_ALL, "Russian");
  101.     int i, j, k, l, p, col, flag, ms=0;
  102.     char arr[kmax+1][lmax+1], subs[kmax*kmax+kmax][lmax+1], c, s, minc, mins, L;
  103.  
  104.     printf("Лабораторная работа №4.\n");
  105.     do
  106.     {
  107.         printf("Введите k, не превышающее %d:", lmax);
  108.         scanf("%d", &k);
  109.         if(k<=0 || k>kmax) printf("k введено некорректно, повторите ввод.\n");
  110.         while(getchar()!='\n');
  111.     }while(k<=0 || k>kmax);
  112.  
  113.     printf("Введите строки (длина не должна превышать %d).\n", lmax);
  114.     for(i=0;i<k;i++)
  115.     {
  116.         printf("%d: ", i + 1);
  117.         fgets(arr[i], lmax, stdin);
  118.     }
  119.     z1(arr, subs, &col, k);
  120.     z2(subs, col, &ms);
  121.     z3(subs, col, ms);
  122.  
  123.     return 0;
  124. }
  125.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement