funkcja zwracająca równą liczbę
Ostatnio zmodyfikowano 2015-03-18 17:34
Nitro Temat założony przez niniejszego użytkownika |
funkcja zwracająca równą liczbę » 2015-03-18 12:12:21 Witam, Napisałem program który porównuje przez funkcje dwie liczby ale nie udaje mi dopisać kodu który poinformuje iż wprowadzone liczby są równe, nie chce robić założenia przy scanf tylko w funkcji. Gdy użytkownik wprowadzi równe liczby nie pojawia się ten printf("Wieksza liczba jest %d\n",wieksza(wybor1,wybor2)); tylko informacja printf("Wprowadzono takie same liczby\n"); #include <stdio.h> #include <stdlib.h>
int wieksza( int a, int b );
int main( void ) { int wybor1 = 0; int wybor2 = 0; int licznik = 0; printf( "Uzytkoniku wprowadz pierwsza liczbe a ja powiem ktora jest wieksza\n" ); while( scanf( "%d", & wybor1 ) == 1 ) { printf( "Wprowadz kolejna liczbe\n" ); scanf( "%d", & wybor2 ); printf( "Wprowadzono takie same liczby\n" ); printf( "Wieksza liczba jest %d\n", wieksza( wybor1, wybor2 ) ); printf( "Podaj kolejne liczby\n" ); } printf( "Dziekuje\n" ); system( "pause" ); return 0; }
int wieksza( int a, int b ) { int max = 0; int min = 0; if( a < b ) max = b; if( a > b ) max = a; if( a == b ) max = 0; return max; }
|
|
Esteban |
» 2015-03-18 16:45:08 int wieksza( int a, int b ) { if( a < b ) return b; if( a > b ) return a; if( a == b ) printf( "Wprowadzono takie same liczby\n" ); }
PS Nie uważasz, że bardziej przejrzyste jest używanie ,,cout" zamiast ,,printf"? |
|
aksen |
» 2015-03-18 17:13:16 do #Esteban
Błąd: funkcja nic nie zwraca w przypadku, gdy: a == b (a raczej zwróci przypadkową liczbę) |
|
aksen |
» 2015-03-18 17:34:32 Najprościej: #include <stdio.h> #include <stdlib.h>
int wieksza( int a, int b );
int main( void ) { int wybor1 = 0, wybor2 = 0, licznik = 0; printf( "Uzytkoniku wprowadz pierwsza liczbe a ja powiem ktora jest wieksza\n" ); while( scanf( "%d", & wybor1 ) == 1 ) { printf( "Wprowadz kolejna liczbe\n" ); scanf( "%d", & wybor2 ); if( wybor1 == wybor2 ) printf( "Wprowadzono takie same liczby\n" ); else printf( "Wieksza liczba jest %d\n", wybor1 > wybor2 ? wybor1: wybor2 ); printf( "Podaj kolejne liczby\n" ); } printf( "Dziekuje\n" ); system( "pause" ); return 0; }
wersja z funkcją: #include <stdio.h> #include <stdlib.h>
int wieksza( int a, int b );
int main( void ) { int wybor1 = 0, wybor2 = 0, licznik = 0; printf( "Uzytkoniku wprowadz pierwsza liczbe a ja powiem ktora jest wieksza\n" ); while( scanf( "%d", & wybor1 ) == 1 ) { printf( "Wprowadz kolejna liczbe\n" ); scanf( "%d", & wybor2 ); if( wybor1 == wybor2 ) printf( "Wprowadzono takie same liczby\n" ); else printf( "Wieksza liczba jest %d\n", wieksza( wybor1, wybor2 ) ); printf( "Podaj kolejne liczby\n" ); } printf( "Dziekuje\n" ); system( "pause" ); return 0; }
int wieksza( int a, int b ) { if( a < b ) return b; if( a > b ) return a; return a; }
|
|
« 1 » |