Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARINGS
- #include <stdio.h>
- #include <stdlib.h>
- #define n 50
- void swap(char** arr, int i, int j) {
- char* c = arr[i];
- arr[i] = arr[j];
- arr[j] = c;
- }
- int printArr(char** arr, int wordNum) {
- for (int i = 0; i < wordNum; i++) {
- int j = 0;
- while (arr[i][j] != '\0') {
- printf("%c", arr[i][j]);
- j++;
- }
- if (i != wordNum - 1)
- printf("_");
- }
- printf("\n");
- }
- void permutation(char** arr, int m, int wordNum) {
- if (m < 2) {
- printArr(arr, wordNum);
- }
- else {
- for (int j = m - 1; j >= 0; j--) {
- swap(arr, j, m-1);
- permutation(arr, m - 1, wordNum);
- swap(arr, j, m - 1);
- }
- }
- }
- int main(){
- char** arr = (char**)malloc(n * sizeof(char*));
- for (int i = 0; i < n; i++)
- arr[i] = (char*)malloc(n * sizeof(char));
- char c = 0;
- int count = 0;
- int wordNum = 0;
- while (c != '\n') {
- c = getchar();
- if (c != '\n') {
- if (c != '_') {
- arr[wordNum][count++] = c;
- }
- else {
- arr[wordNum++][count] = '\0';
- count = 0;
- }
- }
- }
- arr[wordNum++][count] = '\0';
- printf("\n\n");
- permutation(arr, wordNum, wordNum);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement