Hogyan lehetne c nyelven összefésülni két tömböt?
Írj egy
int MergeSort(int *egyik_tomb,int egyik_tomb_elemek_szama,int *masik_tomb,int masik_tomb_elemek_szama,int *eredmeny tomb);
függvényt, amely összeolvasztós rendezést hajt végre két, paraméteréül kapott, már eleve növekvő sorba rendezett , egész számokat tartalmazó tömbön. A függvény globális változót ne használjon, és a képernyőre se írjon ki semmit, a cím szerinti paraméter átadással és a visszatérési értékével hasson a környezetére.
Én ezt írtam, de ez nem jó, le se fordul.
#include<stdio.h>
#include<stdlib.h>
int MergeSort(int *egyik_tomb,int egyik_tomb_elemek_szama,int *masik_tomb,int masik_tomb_elemek_szama,int *eredmeny tomb);{
int a;
int i,j,h;
i=0; j=0; h=0;
while(i<egyik_tomb_elemek_szama||j<masik_tomb_elemek_szama){
if(egyik_tomb[i]<masik_tomb[j]{
eredmeny tomb[h]=egyik_tomb[i];
i=i+1;}
if(egyik_tomb[i]>masik_tomb[j]){
eredmeny tomb[h]=masik_tomb[j];
j=j+1;}
if(egyik_tomb[i]=masik_tomb[j]){
eredmeny tomb[h]=egyik_tomb[i];
i=i+1;
j=j+1;}
h++;
}
if(egyik_tomb_elemek_szama!=masik_tomb_elemek_szama)
a=1;
else
a=0;
return a;
}
int main(){
int t1[5]={2,5,8,15,18};
int t2[6]={1,4,9,12,16,20};
int i,t3;
int *t1p, *t2p, *t3p;
t1p=t1; t2p=t2; t3p=t3;
MergeSort(t1p,5,t2p,6,t3p);
printf("A fuggveny visszateresi erteke: %d\n");
for(i=0;i<11;i++)
printf("Az összeolvasztott, növekvo sorba rendezett eredmeny tömb: %d ",t3[i])
return 0;
}










Itt van egy merge rész, ami nagyon jól leírja az algoritmust. Azt implementáld.
A fordítási hibákat meg írtsd ki, és addig hegessz, amíg nem működik. Ebből fogsz tanulni.




















Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!