Advertisement
ryabov

str2

Oct 3rd, 2022
840
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define n 50
  5. void swap(char** arr, int i, int j) {
  6.     char* c = arr[i];
  7.     arr[i] = arr[j];
  8.     arr[j] = c;
  9. }
  10.  
  11. int printArr(char** arr, int wordNum) {
  12.     for (int i = 0; i < wordNum; i++) {
  13.         int j = 0;
  14.         while (arr[i][j] != '\0') {
  15.             printf("%c", arr[i][j]);
  16.             j++;
  17.         }
  18.         if (i != wordNum - 1)
  19.             printf("_");
  20.     }
  21.     printf("\n");
  22. }
  23.  
  24. void permutation(char** arr, int m, int wordNum) {
  25.     if (m < 2) {
  26.         printArr(arr, wordNum);
  27.     }
  28.     else {
  29.         for (int j = m - 1; j >= 0; j--) {
  30.             swap(arr, j, m-1);
  31.             permutation(arr, m - 1, wordNum);
  32.             swap(arr, j, m - 1);
  33.         }
  34.     }
  35. }
  36. int main(){
  37.     char** arr = (char**)malloc(n * sizeof(char*));
  38.     for (int i = 0; i < n; i++)
  39.         arr[i] = (char*)malloc(n * sizeof(char));
  40.     char c = 0;
  41.     int count = 0;
  42.     int wordNum = 0;
  43.     while (c != '\n') {
  44.         c = getchar();
  45.         if (c != '\n') {
  46.             if (c != '_') {
  47.                 arr[wordNum][count++] = c;
  48.             }
  49.             else {
  50.                 arr[wordNum++][count] = '\0';
  51.                 count = 0;
  52.             }
  53.         }
  54.     }
  55.     arr[wordNum++][count] = '\0';
  56.     printf("\n\n");
  57.     permutation(arr, wordNum, wordNum);
  58.     return 0;
  59. }
  60.  
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement