[C] Výmena prvků pole

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Velous
Příspěvky: 99
Registrován: 12 bře 2010, 00:00

[C] Výmena prvků pole

#1 Příspěvek od Velous »

Zdravím, mám udělat program pro výměnu prvků pole. Přené zadání zní: Vytvořte funkci, která vzájemně vymění prvky dvou polí alokovaných pomocí funkce malloc. Vůbec netuším jak na to. Předem díky za pomoc.
Mám k dispozici šablonu:

#include <stdio.h>
Naposledy upravil(a) Velous dne 05 pro 2012, 19:26, celkem upraveno 5 x.
Uživatelský avatar
DRAKE
Příspěvky: 276
Registrován: 05 zář 2005, 00:00

#2 Příspěvek od DRAKE »

#include <stdio.h>

int VymenPrvky(int* PoleA, int* PoleB, int n)
{
if((PoleA != NULL) && (PoleB != NULL) && (n > 0))
{
int i,tmp;

for(i=0; i < n; ++i)
{
tmp = PoleA[i]
PoleA[i] = PoleB[i];
PoleB[i] = tmp;
}
return 0;
}
return -1;
}

// fukce main se muze lisit dle vyvojovych prostredi
int main(int argc, char **argv)
{
// doplnte zadani libovolne delky
int n = 3;
int* PoleA = (int*)malloc(3 * sizeof(int));
int* PoleB = (int*)malloc(3 * sizeof(int));
if((PoleA != NULL) && (PoleB != NULL))
{
// osetrete vypis true nebo false
VymenPrvky(PoleA, PoleB, n);

free(PoleA);
free(PoleB);
}
return 0;
}
Ježíš na kříži zaplatil za naše hříchy a tím nás osvobodil od věčné smrti. Platí i pro bastliře :-).
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#3 Příspěvek od mtajovsky »

To je ale tupé zadání. K čemu budu vyměňovat prvky dynamicky alokovaných polí? Stačí vyměnit adresy v pointerech ukazujících na pole:

Kód: Vybrat vše

...
int* tmp = PoleA;
PoleA = PoleB;
PoleB = tmp;
...
Uživatelský avatar
DRAKE
Příspěvky: 276
Registrován: 05 zář 2005, 00:00

#4 Příspěvek od DRAKE »

Nejspíš mu to zadal nějakej inteligentní učitel, není se čemu divit.
Ježíš na kříži zaplatil za naše hříchy a tím nás osvobodil od věčné smrti. Platí i pro bastliře :-).
Uživatelský avatar
Velous
Příspěvky: 99
Registrován: 12 bře 2010, 00:00

#5 Příspěvek od Velous »

Ano, je to zadání od učitele. Jinak díky, už jsem na to přišel. :-)
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“