Dobrý den, dostal jsem úkol :
Napište program, který předá pole a počet jeho prvku do funkce, která zkopíruje sudé prvky do nového pole.Obě pole se pak pomocí další funkce vytisknou .
Program celkem šlape, ale objevil se problém. Když tisknu druhé pole, tak se mi tam objevují nějaká čísla navíc, čím je to způsobené? Nebo asi vím čím to je, ale nevím, jak tento nedostatek odstranit.
Zdrojak dole
Děkuji
#include <stdio.h>
#define MAX 10
int sude(int x[],int y[],int pocet); // pole_in, pole_out, pocet prvku
void tiskni();
main()
{
int a[MAX] = { 5, 8, 2, 1, 9, 4, 6, 0, 7, 3 },
b[MAX],
int i, kolik,velikost;
kolik = sude(a,b,MAX);
printf("%d",kolik);
tiskni(a,b);
}
int sude(int x[],int y[],int pocet)
{
int i,
kolik_sudych = 0;
for (i = 0; i <pocet; i++) {
if(x[i]%2==0){
y[i]=x[i];
kolik_sudych++;
}
}
return (kolik_sudych);
}
void tiskni(int x[],int y[])
{
int i;
printf("\n\nPuvodni pole : \n");
for (i = 0; i < MAX; i++)
printf("%2d ", x[i]);
printf("\nPole jen se sudymi prvky : \n");
for (i = 0; i < MAX; i++)
printf("%2d ", y[i]);
}