Program dla komisji wyborczej. Dane dla programu:
Program powinien wyprowadzić na ekran dane początkowe. Następnie wywołuje funkcję sortującą, która przestawia dane wejściowe wg malejącej liczby głosów. Po powrocie z funkcji sortującej program wyprowadza na ekran wyniki głosowania wg nowego porządku.
Funkcja sortująca powinna stosować algorytm bąbelkowy (wielokrotnego przeglądania tablicy ze sprawdzaniem poprawności położenia wzajemnego dwóch sąsiednich elementów, a w przypadku niewłaściwej kolejności – ich przestawieniem). Należy zwrócić uwagę na właściwy moment zakończenia przeglądania tak, aby nie powtarzać iteracji niekoniecznych.
while
, nie należy definiować zmiennej oznaczającej numer elementu, lecz dla odwoływania się do kolejnych elementów inkrementować zmienną wskaźnikową.W segmencie głównym należy zdefiniować tablicę jednowymiarową, przypisać jej elementom losowe wartości z zakresu [-100, 100], wyprowadzić wartości elementów tablicy na ekran oraz wywołać funkcję, która oblicza ile jest elementów >0 oraz do każdego elementu <0 dodaje 1 (należy użyć operatora ++). Następnie (także w main) wyprowadzić na ekran liczbę elementów dodatnich oraz zawartość tablicy. W wersji rozszerzonej – to samo dla tablicy dwu- i trzywymiarowej.
Proszę przeczytać poniższy program:
# include <stdio .h> int main () { int tab []={10 ,20 ,30 ,40 ,50 ,60 ,70} , *p= tab +2; int i,a,b,c,d,e; a =++* p; ; printf ("a=%d tab = ",a); for (i =0;i <8; i ++) printf ("%d ",tab [i]); printf ("\n"); b =*++ p; printf ("b=%d tab = ",b); for (i =0;i <8; i ++) printf ("%d ",tab [i]); printf ("\n"); c=*p ++; printf ("c=%d tab = ",c); for (i =0;i <8; i ++) printf ("%d ",tab [i]); printf ("\n"); d =++*++ p; printf ("d=%d tab = ",d); for (i =0;i <8; i ++) printf ("%d ",tab [i]); printf ("\n"); e =++* p ++; printf ("e=%d tab = ",e); for (i =0;i <8; i ++) printf ("%d ",tab [i]); printf ("\n"); return 0; }
Proszę najpierw przewidzieć, co pojawi się na ekranie, a później sprawdzić, czy przewidywania były słuszne.