Pętla while (w połączeniu z scanf)

0

Witam.
Chodzi o to by program wyświetlał komunikat o złej dziedzinie tyle razy ile użytkownik wprowadzi wartość x<=0? Teoretycznie działa jednak czy coś takiego jest poprawne? Jeżeli nie, jako początkujący programista, będę wdzięczny za wszelkiego rodzaju uwagi. :)

int d;
while(x<=0){
	printf("Zla dziedzina, podaj \'x\' jeszcze raz \n"); //jak to działa?
	scanf("%d",&x);
}

Z góry dziękuję.

6

Tłumacząc na polski:

 while(x<=0){ //dopóki x jest mniejsze lub równe zero (czyli tak długo jak spełniony jest warunek taki że x<=0 wykonuj to co jest w pętli)
        printf("Zla dziedzina, podaj \'x\' jeszcze raz \n"); //wypisz komunikat "Zla dziedzina..."
        scanf("%d",&x);//wczytaj liczbę całkowitą jako zmienną x
  }
4

Ja bym zrobił to tak:

#include <stdio.h>

int main(void)
{
    int domain = 0;
    do{
        printf("Enter domain value (where domain is greater than '0'): ");
        scanf("%d",&domain);
    }while(domain <= 0);
    return 0;
}

Czemu tak? To co Ty robisz to używanie niezainicjalizowanej zmiennej d. Nie wiem czy w Twoim kodzie d to to samo co x i po prostu źle nazwałeś obiekty. Rzecz jasna musisz w ogóle dać userowi szansę na wpisanie wartości dziedziny. Lepiej zrobić to przez do while, bo pętla wykona się przynajmniej raz co pozwoli użytkownikowi wprowadzić wartość obiektu domain.

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