Struktura danych - wyszukiwanie

0

Dobry wieczór!

mając przykładowo taką strukturę która jest wypełniona jakimiś tam losowymi danymi

typedef struct{
        char nazwisko[30], imie[30];
        int id_studenta, nr_sprawdz;
        struct tOcena *next
                      } tOcena;
typedef tOcena *wOcena;
wOcena poczatek, koniec;

jak prawidłowo stworzyć funkcję przykładowo wyznaczającą liczbę studentów którzy uzyskali oceny z jakiegos tam przedziału (powiedzmy 2-3)?

0

Tworzysz funkcję przechodzącą przez listę i sprawdzajacą czy warunek został spełniony. Tu nie ma żadnej specjalnej filozofii. Jak nie wiesz jak to zrobić to zacznij od napisania funkcji przechodzącej przez całą listę.

2

Wszystkie takie problemy z linked listami, Rozwiążesz znanym wzorem: wyszukiwaniem liniowym:

int gradesNum(tOcena * head) {
	tOcena * tmp = head;
	int cnt = 0;
	while (tmp) {
		if (tmp->grade /*todo warunki*/)
			++cnt;
		tmp = tmp->next;
	}
	return cnt;
}
0
void ilu_studentow(id_studenta){
    int n=0;
    while(id_studenta!=NULL){
    if(tOcena=='2'){
        n++;
        }   
    printf("Liczba studentow ktorzy dostali ocene 2 wynosi: %d", n);
    }
}


Pewnie to co napisałem razi w oczy, ale próbuje jakoś to zrozumieć więc z góry przepraszam!

pewnie to głupie co tu napisałem ale wstępnie rozumuje to tak, że
funkcja przyjmuje id studenta-> n będzie licznikiem-> no i ta nieszczęsna pętla którą wykonałem,,

Przyjmuje każdą krytykę//

1

Pattern Zastosowałeś (Dodaj jeszcze temp node); ale, czemu ocena jest znakiem, powinna być integerem, lub floatem jesli dopuszcamy, np., 4.5 i umożliwi to też znajdywanie ocen z przedziału; jesli funkcja ma coś liczyć to niech nie będzie void tylko niech zwraca, to co ma znaleźć.

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