Forum » Programiranje » [c++]Urejanjepolja
[c++]Urejanjepolja
purki ::
Pozdravljeni. Ker sem še nevešč programiranja vas prosimza pomoč.
Potrebujem neko funnkcijo ki razširi poljubno tabelo tipa uchar in sicer: i-ti element originalne tabele se preslika na lokacijo (2*i-1) nove tabele in na lokacijo (2*i) nove tabele s tem da se mu doda vrednost 0x40. Več na slikovni predstavitvi
Ta funkcija naj sprejme kazalec na original tabelo in vrne kazalec na novo.
Hvala vsem !!
Potrebujem neko funnkcijo ki razširi poljubno tabelo tipa uchar in sicer: i-ti element originalne tabele se preslika na lokacijo (2*i-1) nove tabele in na lokacijo (2*i) nove tabele s tem da se mu doda vrednost 0x40. Več na slikovni predstavitvi
Ta funkcija naj sprejme kazalec na original tabelo in vrne kazalec na novo.
Hvala vsem !!
- spremenilo: purki ()
Gundolf ::
Definiraš funkcijo, ki vzame ene par parametrov: izvorno tabelo, ciljno tabelo in verjento še dolžino podane vhodne tabele. Znotraj funkcije pa iz prve tabele pa v eni for zanki (ki gre čez celo dolžino vhodne tabele) prebereš i-ti element in ga zapišeš na (2*i-1)-to mesto v drugi tabeli in tako dalje... :)
purki ::
To že. Problem je sledeč ker funkcija odlagaga podatke na sklad. Jaz pa bi rabil kazalec na tabelo za izhod te funkcije.
Genetic ::
Tabelo ustvari znotraj funkcije: uchar* buffer = new uchar[2*i];
New alocira memorijo na heapu.
Potem pa jo napolnis, kot je opisano in jo na koncu vrnes: return buffer;
EDIT: popravil i na 2*i
New alocira memorijo na heapu.
Potem pa jo napolnis, kot je opisano in jo na koncu vrnes: return buffer;
EDIT: popravil i na 2*i
Zgodovina sprememb…
- spremenil: Genetic ()
Gundolf ::
Ali pa kot sem že prej rekel, definiraj funkcijo ki tudi drugo tabelo vzame kot parameter.
bozjak ::
evo en kratek primer. Mislim, da je to to kar isces.
Prevedeno v dev-c++.
Lp
#include <stdio.h> #include <stdlib.h> #include <time.h> char * zamenjaj (char tab[], int i) { char * buffer = new char[2*i];; int j; for (j=0; j < i; j+=2) { buffer[j] = tab[j]; buffer[j+1] = tab[j]; printf ("%c %c", tab[j], buffer[j]); } return buffer; } int main(int argc, char *argv[]) { char * buffer; char tab[50]; int i = 50; int j; srand(time(NULL)); for (j=0; j < i; j++) { tab[j] = rand()%20 + 65; printf("%c ", tab[j]); } printf("\n\n\n"); buffer = zamenjaj(tab, i); printf("\n\n\n"); for (j=0; j < (2 * i); j++) { printf("%c ", buffer[j]); if (j%5 == 0) printf("\n"); } printf("\n"); system("PAUSE"); return EXIT_SUCCESS; }
Prevedeno v dev-c++.
Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
purki ::
Compiler javi
Napaka v vrstici
New je operator , on pa misli da je spremenljivka ??
'new' : undeclared identifier
Napaka v vrstici
char * buffer = new char[2*i];;
New je operator , on pa misli da je spremenljivka ??
jerac ::
To maš C verjetno pol ne pa C++. Namesto char * buffer = new char[2*i]; uporabi char* buffer = malloc(2*i);
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C osnovaOddelek: Programiranje | 1542 (1057) | RunoTheDog |
» | [C] Branje iz datotekeOddelek: Programiranje | 1717 (1548) | BigWhale |
» | Program v COddelek: Programiranje | 1928 (1767) | darkkk |
» | osnove v Javi - zvezdiceOddelek: Programiranje | 3537 (2759) | Tutankhamun |
» | [C] Narascajoce sortiranje linearnega seznamaOddelek: Programiranje | 1856 (1745) | Jebiveter |