Nie z niesprawdzającym się warunkiem w if i pętli.

0

Użytkownik ma wpisać max liczbę dwucyfrową. Pytanie dlaczego warunek A[i][j]<-99 nie działa, tak jakby program go nie sprawdzał tylko przechodzi od razu dalej. Próbowałem z lub || i z i &&, ale dalej to samo.

 
    for(i=0;i<4;i++)
        for(j=0;j<5;j++)
        {
            do
            {
                printf("\nPodaj element macierzy max dwucyfrowy [%d.%d]: ", i,j);
                scanf("%3d", &A[i][j]);
                if(A[i][j]>99 || A[i][j]<-99)
                    printf("Prosze poprawic dane wejsciowe.");
            }
            while(A[i][j]>99 || A[i][j]<-99); //jeśli dobrze rozumiem pętla ma się powtarzać dopóki liczba znajdująca się w A[i][j] jest większa od 99
                                              //lub liczba znajdujca się w A[i][j] jest mniejsza od -99
        }
0

wydaje mi się, że problem może leżeć w scanf:
scanf("%3d", &A[i][j]);

oznacza, że oczekujesz liczby o szerokości 3, a ty oczekujesz po prostu liczby: scanf("%d", &A[i][j]);

jest jeszcze opcja że Twoja tablica jest zdefiniowana tak:
double A[4][5]; to by oznaczalo ze zamiast %d powinienes uzyc %lf

0

Dzięki. Miałeś rację z tym scanf.

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