[ Batleo @ 01.03.2017. 16:18 ] @
Ovo je program koji sortira elemente/brojeve u parne i neparne.
Sve je ok kada ih sortiram, ali kada hocu da od njih napravrim dva posebna niza, sa parnim i neparnim izmedju dva broja ubacuje 0 . Zasto? Kako izbeci to?

Code:


#include <stdio.h>
#define MAX_LENGTH 100

int main()
{
    int arr[MAX_LENGTH];
    int i,n;
    int odd[MAX_LENGTH]={0};
    int even[MAX_LENGTH]={0};

    printf("Enter how many numbers you want to sort : ");
    scanf(" %d",&n);
    printf("Enter numbers : ");

    for(i=0;i<n;i++)
    {
        scanf(" %d",&arr[i]);
    }
    puts("\nEVEN NUMBERS :");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2==0)
        {
        even[i]=arr[i];//hocu da imam array koji sadrzi sve parne brojeve koje korisnik unese i da kasnije upotrebim
        printf("even number from array : %d.\n",arr[i]);
        }
    }
    puts("\nODD NUMBERS : ");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2!=0)
        {
            odd[i]=arr[i];//hocu da imam array koji sadrzi sve neparne brojeve koje korisnik unese i da kasnije upotrebim
            printf("odd numbers from array %d.\n",arr[i]);
        }

    }
    /*DO OVOG DELA PROGRAM RADI ODLICNO, A OVDE UMESTO DA ISPISE NIZ, IZMEDJU SVAKA DVA BROJA UBACI NULU. ZASTO ??? */
    puts("\nArray of your even numbers : ");
    for(i=0;i<n;i++)
    {
        printf("%d ",even[i]);
    }
    puts("\n\nArray of your odd numbers : ");
    for(i=0;i<n;i++)
    {
        printf("%d ",odd[i]);
    }

    return 0;
}


Pokusao sam da ubacim jos 2 brojaca ali onda samo 0 prebaci na kraj niza.

Code:

#include <stdio.h>
#define MAX_LENGTH 100

int main()
{
    int arr[MAX_LENGTH];
    int i,n,j=0,k=0;
    int odd[MAX_LENGTH]={0};
    int even[MAX_LENGTH]={0};

    printf("Enter how many numbers you want to sort : ");
    scanf(" %d",&n);
    printf("Enter numbers : ");

    for(i=0;i<n;i++)
    {
        scanf(" %d",&arr[i]);
    }
    puts("\nEVEN NUMBERS :");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2==0)
        {
        even[j]=arr[i];//hocu da imam array koji sadrzi sve parne brojeve koje korisnik unese i da kasnije upotrebim
        j++;
        printf("even number from array : %d.\n",arr[i]);
        }
    }
    puts("\nODD NUMBERS : ");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2!=0)
        {
            odd[k]=arr[i];//hocu da imam array koji sadrzi sve neparne brojeve koje korisnik unese i da kasnije upotrebim
            k++;
            printf("odd numbers from array %d.\n",arr[i]);
        }

    }
    /*DO OVOG DELA PROGRAM RADI ODLICNO, A OVDE UMESTO DA ISPISE NIZ, IZMEDJU SVAKA DVA BROJA UBACI NULU. ZASTO ??? */
    puts("\nArray of your even numbers : ");
    for(i=0;i<n;i++)
    {
        printf("%d ",even[i]);
    }
    puts("\n\nArray of your odd numbers : ");
    for(i=0;i<n;i++)
    {
        printf("%d ",odd[i]);
    }

    return 0;
}


[ Branimir Maksimovic @ 01.03.2017. 16:23 ] @
Pa kolka je duzina niza a kolko ima parnih i neparnih?
[ Batleo @ 01.03.2017. 16:28 ] @
@Branimir Maksimovic Duzina je onolika koliko korisnik unese. Stavio sam da je maksimalno 100 elemenata pri definisanju MAX_LENGTH

Administrator moze da obrise temu. "Provalio" sam resenje, bila je fora sa dva dodatna brojaca.
Code:

#include <stdio.h>
#define MAX_LENGTH 100

int main()
{
    int arr[MAX_LENGTH];
    int i,n,j=0,k=0;
    int odd[MAX_LENGTH]={0};
    int even[MAX_LENGTH]={0};

    printf("Enter how many numbers you want to sort : ");
    scanf(" %d",&n);
    printf("Enter numbers : ");

    for(i=0;i<n;i++)
    {
        scanf(" %d",&arr[i]);
    }
    puts("\nEVEN NUMBERS :");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2==0)
        {
        even[j]=arr[i];
        j++;
        printf("even number from array : %d.\n",arr[i]);
        }
    }
    puts("\nODD NUMBERS : ");
    for(i=0;i<n;i++)
    {
        if(arr[i]%2!=0)
        {
            odd[k]=arr[i];
            k++;
            printf("odd numbers from array %d.\n",arr[i]);
        }

    }

    puts("\nArray of your even numbers : ");
    for(i=0;i<j;i++) // ovde je trebalo j umesto n
    {
        printf("%d ",even[i]);
    }
    puts("\n\nArray of your odd numbers : ");
    for(i=0;i<k;i++)//uvede je trebalo k umesto n
    {
        printf("%d ",odd[i]);
    }

    return 0;
}