Wpis z mikrobloga

Mirki wykładowca napisał mi „brak walidacji- znaki a i b” czyli o co chodzi? XD

#include
int main(){
double a;
double b;
double c;
double storage;
double lo;
double hi;
double suma;
printf("\nPodaj liczbę a: ");
scanf("%lf", &a);
printf("\nPodaj liczbę b: ");
scanf("%lf", &b);
printf("\nPodaj liczbę c: ");
scanf("\n %lf", &c);
if(a>b){
storage=a;
lo=b;
}
else{
storage=b;
lo=a;
}
if(storage>c){
hi=storage;
if(lo>c){
storage=lo;
lo=c;
}
else{
storage=c;
}
}
else hi=c;
suma=a+b+c;
printf("\nLiczby od najmniejszej do najwiekszej:\n");
printf("%lf %lf %lf", lo, storage, hi);
printf("\nSuma:\n");
printf("%lf", suma);
printf("\nMin: %lf", lo);
printf("\nMax: %lf", hi);
return 0;
}

#programowanie #jezykc
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@DingoYT ale i tak możesz wpisać 'd--a' zamiast liczby. I teraz pytanie czy program się zachowa tak jak było w wymaganiach. Jak wymagania nie uwzględniały takiej sytuacji to zachowaj się jak typowy programista i powiedz, że wymagania sa nieprecyzyjne.
  • Odpowiedz
@DingoYT: akurat a i b to zawsze będą liczby bo jak mówisz zadeklarowałeś ich typ ( ͡° ͜ʖ ͡°) Inna sprawa że scanf nie da rady wpisać do doubla "a". Więc raz, że zmienna zostaje nie zmieniona, w twoim wypadku są tam jakieś losowe śmieci, czyli źle to dwa to "a" zostaje w buforze, też źle. Pro tip: scanf zwraca ilość poprawnie wczytanych zmiennych.
  • Odpowiedz