Wypisanie najmniejszej liczby dodatniej z zakresu -50,50

0

Mam problem z warunkiem jaki wstawić w ifa, aby wypisywało mi najmniejszą liczbę dodatnią spośród wylosowynch liczb (-50,50)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int najmniejsza_dod(int tab[]){
    int min=0;
    int i;
    for(i=0; i<50; ++i){

        if(tab[i]<min){
            min=tab[i];

        }

    }
    return min;
}

int najwieksza_uj (int tab[]){
    int max=0;
    int i;
    for(i=0; i<50; ++i){
        if(tab[i]<max){
            max=tab[i];
        }
    }
    return max;
}

int main()
{
    int wynik1, wynik2;
   int tab1[50];
   int tab2[50];
    srand(time(0));
    printf("Tablica 1\n");
    for(int i=0; i<50; ++i){
        tab1[i] = (rand() %100)-50;
        printf("%d ",tab1[i]);
    }
        printf("\n\nTablica 2\n");
        for(int i=0; i<50; ++i){
        tab2[i] = (rand() %100)-50;
        printf("%d ",tab2[i]);
    }


    wynik1=najmniejsza_dod(tab1);
    wynik2=najwieksza_uj(tab2);
    printf("\n\nNajmniejsza dodatnia: %d \n\n",wynik1);
    printf("\nNajwiększa ujemna: %d \n\n",wynik2);
    return 0;
}
0

Zamień znak mniejszości na znak większości, w końcu szukasz największej. I nie inicjalizuj min/max zerem, tylko odpowiednio 50 i -50 (albo po prostu pierwszym elementem tablicy)

0

dalej nie śmiga :/

0

Ach, źle przeczytałem. Musisz jeszcze sprawdzić czy obecnie sprawdzana liczba jest ≥ 0 dla dodatnich i < 0 dla ujemnych.

0

No właśnie mam problem z zapisaniem tego.

0
int maxPositiveDrawn = 50;
if (randomNumber >= 0 && randomNumber < maxPositiveDrawn)
{
   maxPositiveDrawn = randomNumber;
}
0

Dzięki, działa elegancko :)

0

mam jeszcze problem ze zliczaniem takich samych liczb w tablicy.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tab[10]={1,1,2,2,2,3,3,3,3,3};
    int zlicz = 0;
    int tab2[10]={0};
    printf("Liczby w tablicy: \n");

    for(int i=0; i<10; i++){

        printf("%d ", tab[i]);

         tab2[i] = tab[i];

        for(int j=0; j<10; j++)
            if(tab2[j]==tab[j])
                    zlicz= zlicz+1;
    }
    printf("\n\nIle: %d", zlicz);

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1