кодесурса
«C

Упражнения на C: создание перестановок для заданной строки

script1adsense2code
script1adsense3code

Указатель C: упражнение-8 с решением

Напишите программу на C для печати всех перестановок данной строки с использованием указателей.

Пример решения:

Код C:

#include <stdio.h>
#include <string.h>
void changePosition(char *ch1, char *ch2)
{
    char tmp;
    tmp = *ch1;
    *ch1 = *ch2;
    *ch2 = tmp;
}
void charPermu(char *cht, int stno, int endno)
{
   int i;
   if (stno == endno)
     printf("%s  ", cht);
   else
   {
       for (i = stno; i <= endno; i++)
       {
          changePosition((cht+stno), (cht+i));
          charPermu(cht, stno+1, endno);
          changePosition((cht+stno), (cht+i)); 
       }
   }
}
 
int main()
{
    char str[] ="abcd";
   printf("\n\n Pointer : Generate permutations of a given string :\n"); 
   printf("--------------------------------------------------------\n"); 
    int n = strlen(str);
    printf(" The permutations of the string are : \n");
    charPermu(str, 0, n-1);
     printf("\n\n");
    return 0;
}

Пример вывода:

 Указатель: генерировать перестановки данной строки:                                                          
-------------------------------------------------- ------                                                      
 Перестановки строки:                                                                         
abcd abdc acbd acdb adcb adbc bacd badc bcad bcda bdca bdac cbad cbda cabd cadb cdab cdba db
ca dbac dcba dcab dacb dabc

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Previous: написать программу на C для хранения n элементов в массиве и печати элементов с помощью указателя.
Далее: Напишите программу на C, чтобы найти самый большой элемент, используя динамическое выделение памяти.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code