Wątek przeniesiony 2017-03-23 18:09 z C/C++ przez kq.

Wyświetlanie liczb w zadanej kolejności - brak obsługi liczb ujemnych

0

Witam.Na wstępie chciałbym nadmienić że jestem po 2 lekcjach programowania i prosiłbym o ,,nie hejtowanie'' błędów lub rzeczy tego typu ale do rzeczy.Ostatnio dostałem zadanie z programowania,zrobiłem [Pan polecił mi użycie drzewka decyzyjnego i takie zastosowałem(tak mi się wydaje)] i wynik nie do końca mnie zadowala ponieważ program miał wyświetlić liczby (wpisane przez użytkownika) w kolejności od największej do najmniejszej (do 2 miejsc po przecinku).Wszystko w porządku mniej więcej działa lecz gdy wpisuję liczbę z minusem program nie wyświetla żadnych liczb.Z góry dziękuję za pomoc i pozdrawiam.

#include <cstdio>

int main(){
	double a,b,c;
	scanf("%lf %lf %lf", &a, &b, &c);
	
	if(a>b){
		if(c>a){
			printf("%.2lf %.2lf %.2lf",c,a,b);
		}
		if(c>!a){
			if(c>b){
				printf("%.2lf %.2lf %.2lf",a,c,b);
			}
			else if(c>!b){
				printf("%.2lf %.2lf %.2lf",a,b,c);
			}
		}
	}
	if(a>!b){
		if(c>b){
			printf("%.2lf %.2lf %.2lf",c,b,a);
		}
		else if(c>!b){
			if(c>a){
				printf("%.2lf %.2lf %.2lf",b,c,a);
			}
			else if(c>!a){
				printf("%.2lf %.2lf %.2lf",b,a,c);
			}
		}
	}	
}
0

c>!a - to jest źle. !a będzie true dla zera i false dla dowolnej innej wartości.

Chciałeś użyć >= albo po prostu else.

0
if (c>!a) {

Nieprawidłowo użyłeś operatora negacji, powinno się go użyć tak

if (!(c>a)) {

Ale w twoim przypadku najlepiej napisać

else {

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