[ Adis A. @ 02.04.2010. 16:21 ] @
Zdravo.

Treba mi vaša pomoć. U pitanju je jedan prost zadatak.

" Dat je celobrojni niz A dimenzije n. Formirati niz B,koji se dobija od parnih elemenata niza A. "

Ja sam to uradio na sledeći način:

Code:
#include <stdio.h>
void unos(int X[], int n)
{
    int i;
    for(i=0;i<n;i++)
        scanf("%d",&X[i]);
}
void ispis(int X[], int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%d\n",X[i]);
}
main()
{
    int A[20],B[20],n,i,k=0;;
    printf("Unesite dimenziju niza: ");
    scanf("%d",&n);
    printf("Unesite elemente niza: ");
    unos(A,n);
    for(i=0;i<n;i++)
        if(A[i]%2==0)
        {
            B[k]=A[i];
            k++;
        }
     printf("Novi niz: \n");
     ispis(B,k);
}


Zanima me kako da napišem deo koda za formiranje niza B kao funkciju, koju ću posle da pozovem u glavnom programu?


[ X Files @ 02.04.2010. 16:56 ] @
Dakle, treba ti nova funkcija u kojoj ce biti izdvajanje samo parnih.

S obzirom da ce duzina novog niza verovatno biti razlicita od velicine pocetnog, dobro je da funkcija vrati broj elemenata novog niza.
Kao argumenti, trebaju ti: ulazni niz, izlazni niz i broj elemenata ulaznog niza. Broj elemenata novog niza se resava povratnom vrednoscu funkcije.

Na osnovu tvog koda, pod pretpostavkom da ostalo radi, treba otprilike ovako /netestirano/:
Code (c):

#include <stdio.h>
void unos(int X[], int n)
{
    int i;
    for(i=0;i<n;i++)
        scanf("%d",&X[i]);
}
void ispis(int X[], int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%d\n",X[i]);
}

int samo_parni(int ulaz[], int izlaz[], int n)
{
    int i, k=0;
    for(i=0;i<n;i++)
        if(ulaz[i]%2==0)
        {
            izlaz[k]=ulaz[i];
            k++;
        }
    return k;
}

int main(void)
{
    int A[20],B[20],n,i,k;
    printf("Unesite dimenziju niza: ");
    scanf("%d",&n);

    printf("Unesite elemente niza: ");
    unos(A,n);

    printf("Izdvajanje...\n ");
    k = samo_parni(A,B,n);

    printf("Novi niz: \n");
    ispis(B,k);
}
 


Nije losa praksa navici se i na dodavanje kljucnih reci "const" u argumentima funkcije koji nisu namenjeni menjanju.
[ Adis A. @ 02.04.2010. 18:33 ] @
Hvala ti puno. Testirano je i radi.