Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
figlanto
Člen
Avatar
figlanto:15.11.2014 22:30

Ahojte, mám problém s jednoduchým prográmkem do...mám vytvořit pole např od 0 po 10 s tím na výstupu mi to vypíše dané pole a zároven pole obráceně to jest od 10 po 0 ... napsal jsem to nějak takhle...

#include <stdio.h>
#include <string.h>
#define poc 15
int main()
{
 int pole[poc];
 int i;

 printf("znaky z pole: ");

 for(i=0;i<=poc;i++){
    printf("%i ",pole[poc]);
}
 printf("\nobracene znaky: ");

for(i=poc;i>=0;i--){
    printf("%i ",pole[poc]);
}

 return 0;
}

ale muj profesor mi na to napsal tenhle mail ... " s tím obrácením pole jste to bohužel zatím asi nepochopil. Jde o to, že přímo v paměti pole je potřeba prohodit první a poslední prvek, druhý a předposlední prvek, třetí a předposlední prvek atd. Aby se při další práci s polem již pracovalo s hodnotami ve změněném pořadí, bez ohledu na to jak nebo v jakém cyklu je použijete. Prostě po vás chci, abyste provedl v poli tu úpravu pořadí natrvalo..."

prosím o radu, napadlo mě použít bubble sort ale moc si s tím nevím rady??

Díky za odpovědi budu Vám zavázán! :))

 
Odpovědět
15.11.2014 22:30
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na figlanto
Snorlax:15.11.2014 22:54

Podle mě to jde vyřešit pouze další proměnnou:

#include <stdio.h>
#include <string.h>
#define poc 15

int main() {
    int i;
    int ii;
    int pole[poc] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400};
    int obracene_pole[poc];
    printf("znaky z pole: ");

    for (i = 0; i <= poc; i++) {
        printf("%i ", pole[i]);
    }
    printf("\nobracene znaky: ");

   for(i=poc, ii=0;i>=0;i--,ii++){
       obracene_pole[ii]=pole[i];
   }

      for (i = 0; i <= poc; i++) {
        printf("%i ", obracene_pole[i]);
    }
    return 0;
}
Editováno 15.11.2014 22:59
Nahoru Odpovědět
15.11.2014 22:54
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Odpovídá na Snorlax
Libor Šimo (libcosenior):18.11.2014 14:39

Snorlax, ty si vytvoril nové pole, ale ja si myslím, že požiadavka je otočiť to isté pole.
Možno takto nejak:

#include <stdio.h>
#define POCET 21

/** funkcia vymeni navzajom obsah pointerov **/
void vymen_obsah_pointerov(int *p_x, int *p_y)
{
        int pom;
        pom = *p_x;
        *p_x = *p_y;
        *p_y = pom;
}

/** funkcia otoci pole intov hore nohami **/
void otoc_pole(int pole[], int pocet_prvkov)
{
    int i, j;
    // obsah prveho pointeru sa vymeni za obsah posledneho a tak dalej
    for (i = 0, j = pocet_prvkov - 1; i < pocet_prvkov / 2; i++, j--) {
        vymen_obsah_pointerov(&pole[i], &pole[j]);
    }
}

int main()
{
    int i, pole[POCET];

    printf("Vytvorim pole o %d prvkoch a potom ho vypisem:\n", POCET);
    for(i = 0; i < POCET; i++)
        pole[i] = i + 1;

    for(i = 0; i < POCET; i++)
        printf(" %d,", pole[i]);

    printf("\n\nOtocim to iste pole a vypisem ho:\n");
    otoc_pole(pole, POCET);

    for (i = 0; i < POCET; i++)
        printf(" %d,", pole[i]);
    putchar('\n');

    return 0;
}
Nahoru Odpovědět
18.11.2014 14:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
tichjos
Člen
Avatar
tichjos:26.11.2014 19:59

Ahoj, neumí tady někdo v raptoru? Právě v něm začínám a nevím si rady s jednou úlohou. Za každý nápad budu rád. Díky moc
Zadání:

  1. uživatel zadá "limit" = 20
  2. generování pole od:do (2:limit)
  3. cyklus přes všechny nenulové prvky: škrtni v Pol: (poli,2 = 1)
  4. výpis
Editováno 26.11.2014 20:00
 
Nahoru Odpovědět
26.11.2014 19:59
Avatar
Odpovídá na tichjos
Libor Šimo (libcosenior):26.11.2014 20:04

Slovo "raptor" mi pripomína Jurský park. :-D
Ak je to nejaký jazyk, tak sorry, tu je sekcia pre c/c++.

Editováno 26.11.2014 20:05
Nahoru Odpovědět
26.11.2014 20:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Libor Šimo (libcosenior):26.11.2014 20:08

Takže je to jazyk, pre mňa novinka.

Nahoru Odpovědět
26.11.2014 20:08
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.