Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Duplo manji u tablici dali postoji

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Duplo manji u tablici dali postoji

[ Pregleda: 5857 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

negative7
Ivan Raic

Član broj: 186110
Poruke: 151
*.tel.net.ba.



Profil

icon [Zadatak] Duplo manji u tablici dali postoji25.02.2009. u 11:26 - pre 184 meseci
pronaci element u tablici koji je barem duplo manji od bilo kojeg drugog elementa u tablici a ako ne postoji program se prekida.

Program sam uradio i on radi 100% tacno
Code:

#include <stdio.h>

void main()
{
    int mat[3][4] = { 
                    {9,7,4,5},
                    {4,5,2,7},
                    {4,6,7,8}
                  };

    int i, j, k, m,min;
    int ind = 1;

    min = mat[0][0];

    for(i=0; i < 3; i++)
    {
        for(j=0; j < 4; j++)
        {
            if(min > mat[i][j])
            {
                min = mat[i][j];
                k = i;
                m = j;
            }
        }    
    }
    
    //Nasli smo minimum

    for(i=0; i < 3; i++)
    {
        for(j=0; j < 4; j++)
        {
            if(min == mat[i][j])
            {
                if((k != i) && (j != m))
                {
                    // Postoji još barem jedan najmanji.
                    ind = 0;
                    break;
                }
            }
            else if(min*min > mat[i][j])  //E ovo mi stvara problem,zasto program ne radi ako stavim samo if
            {
                ind = 0;
                break;
            }
        }

        if(ind == 0)
        {
            break;
        }
    }

    if(ind)
    {
        printf("Pronadjen je najmanji. on je %d i nalazi se u %d redu i %d stupcu\n", min, k+1, m+1);
    }
}


Znaci tu gore gdje sam stavio if else,zasto ne moze ako stoji samo if.Kad stoji if else to je od ovog gornjeg if(min==mat[ i ][j]) i on se tek izvrsava samo ako if(min==mat[ i ][j]) nije zadovoljen,zar ne?

Dali moze netko objasnit tijek izvodjena programa ako je umjesto if else samo if.Naravno tijek izvodjena nakon ovog pronadjenog minimuma.

ako stoji if umjesto if else (na mjestu drugog uvjeta tj. ovo if(min*min>mat[ i ][j])onda program provjerA vazda oba uvjeta zar ne?i ako je u prvom uvjetu if(min==mat[ i ][j]) postavio ind=0;
sta onda kad dodje na drugi ovjet tj(min*min>mat[ i ][j]).Jeli ako ovaj drugi nije zadovoljen ind se vraca na 1 iako je bilo ind=0 zbrog ovog prvog uvjeta.


kad sam prico o uvjetima ovaj uvjet if(k!=i i i!=m) sam zanemario tj. pikao sam ga zajedno sa uvjetom if(min==mat[ i ][j]) kao jedan uvjet

[Ovu poruku je menjao X Files dana 25.02.2009. u 12:46 GMT+1]
 
Odgovor na temu

negative7
Ivan Raic

Član broj: 186110
Poruke: 151
*.tel.net.ba.



Profil

icon Re: [Zadatak] Duplo manji u tablici dali postoji25.02.2009. u 11:31 - pre 184 meseci
ovo gdje god vidite mat[j] treba biti mat[i ][j ], ne znam zasto mi tako prikaziva
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Duplo manji u tablici dali postoji

[ Pregleda: 5857 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.