Diskuze: Výpis
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Jsem jediný kdo absolutně nechápe co chceš?
Chceš posouvat znaky, ale do toho pleteš ascii hodnoty, vůbec nevím proč
Asi myslíš něco jako kód níže. Není to zrovna hezky napsané, protože na permutace (a ty zřejmě potřebuješ na výstup dát všechny permutace tří vstupních znaků) jsem nikdy moc nebyl.
char abc[3];
abc[0] = getchar();
abc[1] = getchar();
abc[2] = getchar();
for (size_t i = 0; i < 3; ++i) {
putchar(abc[i]);
for (size_t j = 0; j < 3; ++j) {
if (i == j)
continue;
putchar(abc[j]);
for (size_t k = 0; k < 3; ++k) {
if (k == i || k == j)
continue;
putchar(abc[k]);
}
}
printf("\n");
}
Mno, myslím to tak, že zadám například:
abc
a na výstupu toho kódu bude:
abc
acb
bac
bca
cab
cba
Nebo, když zadám:
1Ab
tak chci, aby na výstupu bylo:
1Ab
1bA
A1b
Ab1
b1A
bA1
Už chápete, co chci říct?
// C program to print all permutations with duplicates allowed
#include <stdio.h>
#include <string.h>
/* Function to swap values at two pointers */
void swap(char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
/* Function to print permutations of string
This function takes three parameters:
1. String
2. Starting index of the string
3. Ending index of the string. */
void permute(char *a, int l, int r)
{
int i;
if (l == r)
printf("%s\n", a);
else
{
for (i = l; i <= r; i++)
{
swap((a+l), (a+i));
permute(a, l+1, r);
swap((a+l), (a+i)); //backtrack
}
}
}
/* Driver program to test above functions */
int main()
{
char str[] = "1Ab";
int n = strlen(str);
permute(str, 0, n-1);
return 0;
}
To je sice fajn, ale někde tam je něco jinak, než bych potřeboval Pro jakoukoliv délku strinku to
otočí poslední dvě hodnoty
místo:
1Ab
1bA
A1b
Ab1
b1A
bA1
to změní na konci na :
1Ab
1bA
A1b
Ab1
bA1
b1A
:/
Už jsem na to asi přišel, ale hodila by se pomoc
Vlastně mám udělat permutaci s rekurzí .. ale pořád mi něco uniká,
protože to otáčí ten konec, viz: příspěvek výše ?:(
Bude nejspíš tím, že to co jsem poslal prostě vypíše všechny
permutace a ignoruje to jak je chceš nebo nechceš seřadit
A jak bych docílil toho, aby je to seřadilo tak, jak chci?
A ještě jedna věc, potřeboval bych, aby to bralo jen znaky 0-9 A-Z a-z,
když by se tam objevilo něco jiného, tak by to napsalo na výstup třeba
"Chyba" .. To samé, pokud bych nic nezadal a dal jenom Enter
Achjo... Nebudeme ti tady ten domácí úkol dělat kompletně celý kód na
který dáš jen Ctrl-C Ctrl-V. Jestli máš zájem nedávno jsem tu postoval,
že moje přítelkyně Vám ráda udělá domácí úkoly za peníze
Co například to co vyplivne ta metoda co jsem poslal uložit do nějakého pole na které pak použiješ nějaký Sort?
Ty znaky můžeš kontrolovat hnedka na vstupu
Kamarade to uz prehanas. Mas hotovy program a drobnosti si nechces riesit sam. Domace ulohy su pre toho, kto ich dostane.
Zobrazeno 12 zpráv z 12.