Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 20 Apr 2024, 09:42

Všetky časy sú v GMT + 1 hodina




Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 
Autor Správa
 Predmet príspevku: Permutácie bez opakovania
PoslaťNapísal: 22 Mar 2017, 09:10 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Kód:
#include <stdio.h>
#include <string.h>

/* Funkcia prehodí navzájom dva pointery
   @param pointer na znak x
   @param pointer na znak y
*/
void vymen(char *x, char *y)
{
    char temp; // pomocny znak
    temp = *x;
    *x = *y;
    *y = temp;
}

/*Funkcia vypíše všetky permutácie bez opakovania
   @param retazec
   @param pociatočny index retazca
   @param posledny index retazca
*/
void permute(char a[], int l, int r)
{
   int i;

   if (l == r) {
     printf("%s\n", a);
   }
   else
   {
       for (i = l; i <= r; i++)
       {
          vymen((a + l), (a + i));
          permute(a, l + 1, r);
          vymen((a + l), (a + i));
       }
   }
}

int main(void)
{
    char str[] = "1234";
    int n = strlen(str);
    permute(str, 0, n-1);
    return 0;
}

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 

Všetky časy sú v GMT + 1 hodina


Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 0 hostia


Rýchla úprava:
Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete zasielať súbory v tomto fóre

Hľadať:
Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK