Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. #define N 3401
  8. #define M 128
  9.  
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14.     setlocale(LC_ALL, "rus");
  15.     FILE * fin = fopen ("base.txt", "r");
  16.     srand(time(NULL));
  17.    
  18.     char base[N][M], str[M];
  19.     int i = 0, ns = 0, nw = 0, r = 0, j = 0, k = 0, l = 0, n = N;
  20.     bool rhyme = false;
  21.    
  22.     while (!feof (fin) && i < N) {
  23.         fgets (base[i], 128, fin);
  24.         i++;
  25.     }
  26.    
  27.     cout << base[1];
  28.     puts ("Enter number of strings of poem: ");
  29.     cin >> ns;
  30.     puts ("Enter number of words of string: ");
  31.     cin >> nw;
  32.    
  33.     for (i = 0; i < ns; i++) {
  34.         if (i != 0)
  35.             cout << endl;
  36.         for (j = 0; j < nw; j++) {
  37.             r = rand() % N;
  38.             if (j == (nw - 1) && i % 2 == 1) {
  39.                 l = strlen (base[r]);
  40.                 for (k = 0; k < 3; k++) {
  41.                     if (str[k] == base[r][l - 3 + k])
  42.                         k++;
  43.                     else
  44.                         break;
  45.                 }
  46.                 if (k == 3)
  47.                     rhyme = true;
  48.             }
  49.             if (j == nw - 1 && i % 2 == 0) {
  50.                 l = strlen (base[r]);
  51.                 for (k = 0; k < 3; k++)
  52.                     str[k] = base[r][l - 3 + k];
  53.                 str[k] = '\0';
  54.             }
  55.             if (j < nw - 1) {
  56.                 cout << base[r] << " ";
  57.                 n--;
  58.                 while (r < n){
  59.                     strcpy (base[r], base[r + 1]);
  60.                     r++;
  61.                 }
  62.                 j++;   
  63.             }
  64.             else if (rhyme || i % 2 == 0) {
  65.                 cout << base[r] << " ";
  66.                 n--;
  67.                 while (r < n){
  68.                     strcpy (base[r], base[r + 1]);
  69.                     r++;
  70.                 }
  71.                 j++;
  72.             }
  73.         }
  74.         i++;
  75.         rhyme = false;
  76.     }
  77.    
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement