Jak rozpocząć pisanie programu weryfikującego podane przez użytkownika dane

0

Witam mam takie oto zadanie. Należy przygotować program realizujący następujące funkcje:
Wielokrotnego pobierania ze standardowego wejścia wartości pojedynczego parametru, z przedziału od -5 do 5, do momentu wprowadzenia wartości 99. W przypadku podania poprawnej wartości z przedziału należy wypisać ją na standardowe wyjście - niepoprawna wartość powinna powodować wyświetlenie komunikatu z ostrzeżeniem.

Podaj 1. wartosc parametru: 3
Aktualna wartosc parametru: 3
Podaj 2. wartosc parametru: 7
Bledna wartosc parametru!
Podaj 3. wartosc parametru: -3
Aktualna wartosc parametru: -3
Podaj 4. wartosc parametru: -9
Bledna wartosc parametru!
Podaj 5. wartosc parametru: -1
Aktualna wartosc parametru: -1
Podaj 6. wartosc parametru: 99

Nie mam pojęcia jak się do tego zabrać. Czy jest tu ktoś kto, by mi pomógł ?

3

c obsługa konsoli w Google do pary z c instrukcje warunkowe bądź c if, jeśli szanujesz transfer.

2

Najlepiej zacząć od przeczytania jakiegoś kursu języka C. Nawet nie całego, wystarczą pierwsze rozdziały z printf, scanf i instrukcją warunkową if.

0

Dobra udało mi się stworzyc coś takiego, ale chcę, żeby program kończył pracę dla parametru 99 a on wypisuje mi komunikat "Bledna wartosc parametru"
Kod:

#include <stdio.h>

int main()

{
    int i;
    int a = 1;


    while (i != 99)
    {
        printf("Podaj %d. wartosc parametru: ", a++);
        scanf("%d", &i);
        if (i >= -5 && i <= 5)
            printf("Aktualna wartosc parametru: %d\n", i);
        else
            printf("Bledna wartosc parametru!\n");
    }
    return 0;
}
1
  1. Masz UB - podczas pierwszego obiegu pętli sprawdzasz wartość niezainicjowanej jeszcze zmiennej i.
  2. Wypisuje komunikat i kończy pracę, bo i tak przecież sam w kodzie napisałeś ;-)
    Ja preferuję takie podejście:
while (1) {
	printf("Podaj %d. wartosc parametru: ", a++);
	scanf("%d", &i);
	
	if (i == 99) {
		break;
	}
	
	if (i>=-5 && i<=5) {
		printf("Aktualna wartosc parametru: %d\n", i);
	} else {
		printf("Bledna wartosc parametru!\n");
    }
}

Choć niektórzy nie lubią na pierwszy rzut oka nieskończonych pętli, także kto co woli.

0

A może bez pętli nieskończonej? ;-)

int i = 0, a = 1;
printf("Podaj %d. wartosc parametru: ", a);
while (scanf("%d", &i) == 1 && i != 99)  {
  if (i >= -5 && i <= 5) {
    printf("Aktualna wartosc parametru: %d\n", i);
    ++a;
  }
  else 
    printf("Bledna wartosc parametru!\n");
  
  printf("Podaj %d. wartosc parametru: ", a);
}

lub

int i = 0, a = 1;
do {
  printf("Podaj %d. wartosc parametru: ", a);
  scanf("%d", &i);
  
  if (i >= -5 && i <= 5) {
    printf("Aktualna wartosc parametru: %d\n", i);
    ++a;
  }
  else 
    printf("Bledna wartosc parametru!\n");
} while (i != 99); 

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