fuzija dva niza celih brojeva koji su uredjeni po neopadajucem redosledu u treci, na isti nacin uredjeni niz....
evo programa
#include <stdio.h>
#define N 100
main () {
int a[N], na, b[N], nb, c[2*N], nc, ia, ib, ic;
while (1) {
printf ("na? "); scanf ("%d", &na);
if (na<0 || na>N) break;
printf ("A ? "); for (ia=0; ia<na; scanf ("%d", &a[ia++]));
if (na == 0) printf ("\n");
printf ("nb? "); scanf ("%d", &nb);
if (nb<0 || nb>N) break;
printf ("B ? "); for (ib=0; ib<nb; scanf ("%d", &b[ib++]));
if (nb == 0) printf ("\n");
for (ia=ib=ic=0; ia<na&&ib<nb; c[ic++] = (a[ia]<b[ib]) ? a[ia++] : b[ib++]);
while (ia < na) c[ic++] = a[ia++];
while (ib < nb) c[ic++] = b[ib++];
nc = ic;
printf ("C = "); for (ic=0; ic<nc; printf ("%d ", c[ic++]));
printf ("\n\n");
}
}
ovaj izraz c[ic++] = (a[ia]<b[ib]) ? a[ia++] : b[ib++]); uporedjuje elemente nizova a i b i u niz c upisuje manju vrednost. sad mene zanima sta se desava kada clanovi niza imaju iste vrednosti ?
zasto se koriste potom ove dve while petlje kada prethodni izraz upisuje elemente u niz c?
evo programa
#include <stdio.h>
#define N 100
main () {
int a[N], na, b[N], nb, c[2*N], nc, ia, ib, ic;
while (1) {
printf ("na? "); scanf ("%d", &na);
if (na<0 || na>N) break;
printf ("A ? "); for (ia=0; ia<na; scanf ("%d", &a[ia++]));
if (na == 0) printf ("\n");
printf ("nb? "); scanf ("%d", &nb);
if (nb<0 || nb>N) break;
printf ("B ? "); for (ib=0; ib<nb; scanf ("%d", &b[ib++]));
if (nb == 0) printf ("\n");
for (ia=ib=ic=0; ia<na&&ib<nb; c[ic++] = (a[ia]<b[ib]) ? a[ia++] : b[ib++]);
while (ia < na) c[ic++] = a[ia++];
while (ib < nb) c[ic++] = b[ib++];
nc = ic;
printf ("C = "); for (ic=0; ic<nc; printf ("%d ", c[ic++]));
printf ("\n\n");
}
}
ovaj izraz c[ic++] = (a[ia]<b[ib]) ? a[ia++] : b[ib++]); uporedjuje elemente nizova a i b i u niz c upisuje manju vrednost. sad mene zanima sta se desava kada clanovi niza imaju iste vrednosti ?
zasto se koriste potom ove dve while petlje kada prethodni izraz upisuje elemente u niz c?