milmega Temat założony przez niniejszego użytkownika |
Tablice wielowymiarowe » 2017-04-29 13:31:46 Uzupełnij funkcję void check_speed ( int ticket_list[20][2] ) w taki sposób, aby sprawdzała prędkość pojazdu w polu widzenia urządzenia. Jeżeli prędkość przekracza dopuszczalną w tym miejscu wartość 60 km/h, funkcja powinna zapisywać do tabeli int ticket_list[20][2] numer rejestracyjny pojazdu oraz zmierzoną wartość prędkości. W pierwszym wierszu tablicy umieść numery rejestracyjne, w drugim wartości przekroczonych prędkości. API: int get_license_number(void); - zwraca liczbowy numer rejestracyjny. int get_current_speed(void); - zwraca predkość w km/h. Wydaje mi się, że funkcja jest poprawna, aczkolwiek pojawia mi się błąd w testach. O co może chodzić? #include <ALPR_api.h> void check_speed( int ticket_list[ 20 ][ 2 ] ) { int speed = get_current_speed(); int number = get_license_number(); int licznik = 0; if( speed > 60 ) { ticket_list[ licznik ][ 0 ] = number; ticket_list[ licznik ][ 1 ] = speed; licznik++; } }
|
|
karambaHZP |
» 2017-04-29 14:54:25 pojawia mi się błąd w testach. O co może chodzić? |
Jaki błąd i co ma chodzić? edit: przykład: void f( int arr[][ 2 ], int size, int & idx ) { if( idx < size ) { ++idx; } } Ogólnie za każdym razem gdy zaglądasz do funkcji nadpisujesz te same elementy. int licznik = 0;
++licznik;
int ticket_list[ 20 ][ 2 ]
lub skorzystaj z tablicy std::array < std::array < int, 2 >, 20 > i nie będzie potrzeby przekazywać rozmiarów. Będą dostępne metodą size() . |
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-04-29 15:09:41 Błędu jako błędu to nie ma, ale robię to na platformie zadaniowej i nie zalicza mi testów.
FAILED check_speed( ticket_list[20][2] ) { return { { 7436,8991,5458,5236,5524,2750,5027,1569,9411,954,2601,8685,4875,2276,3211,9965,2241,2971,8165,2130 }, { 99,77,108,77,87,93,101,65,70,70,100,94,87,121,104,82,70,114,84,115 } }; } |
|
karambaHZP |
» 2017-04-29 15:18:35 No to jeszcze raz: void check_speed( int ticket_list[ 20 ][ 2 ] ) { int speed = get_current_speed(); int number = get_license_number(); int licznik = 0; if( speed > 60 ) { ticket_list[ licznik ][ 0 ] = number; ticket_list[ licznik ][ 1 ] = speed; licznik++; } }
|
|
|
kaktus12121 |
» 2017-05-07 22:41:45 Witam. Mam to samo zadanie. Czy rozwiązałeś już je i czy mógłbyś się podzielić? |
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-05-09 17:44:13 Musisz najpierw stworzyc 2 inty. Później pętla while pobierasz dla każdego miejsca w tablicy po kolei predkosc i numery. No a pozniej cały czas w tej petli sprawdzasz czy pobrana predkosc jest wieksza niz 60 i jesli jest to zapisujesz w tablicy. Nie umiem tłumaczyc wiec jakby co to pisz to ci podeśle fragmenty kodu. |
|
marcin_kondo |
Mam problem z interpretacją odpowiedzi » 2018-06-04 20:39:41 Mam problem z moją interpretacją odpowiedzi. Mój program nie działa jak powinien. #include <ALPR_api.h> void check_speed ( int ticket_list[20][2] ) { int licznik=0; int speed=get_current_speed(); int number=get_license_number();
//for(;;)
while(licznik<20) { ticket_list[licznik][0] = number; ticket_list[licznik][1] = speed; licznik++; if(speed>60) { for(licznik=0; licznik<20; licznik++) { ticket_list[licznik][0] = number; ticket_list[licznik][1] = speed; } } } }
|
|
pekfos |
» 2018-06-04 20:58:04 Debuguj. Jak wymyślisz jakieś konkretne pytanie, zadaj je we własnym temacie. |
|
« 1 » |