/****************************************************************************/ /* ** K E R H O E T S . C ** ** Kerhosta tietyn ehdon t„ytt„vien j„senien etsiminen ** ** Aliohjelmat: ** laske_montako_muuta - etsii onko muita kuin valittua j„sent„ ** ** ** Tekij„t: Vesa Lappalainen ** Ohjelmointikurssi 1991 ** Tehty: 21.12.1991 ** Muutettu: ** Mit„ muutettu: ** */ #include #include #include #include "mjonot.h" #include "kerho.h" /****************************************************************************/ int /* 0 = ei l”ydy muita joihin t„sm„„ */ laske_montako_muuta( /* muuten muiden t„sm„„vien m„„r„ */ Kerho_tyyppi *kerho ,/* s Kerho josta etsit„„n */ int kentta ,/* s Kentt„ johon verrataan (nimi tai sotu) */ char *jono ,/* s Jono jota etsit„„n */ int kuka_ei ,/* s Henkil” jota ei etsit„. */ int *viimeinen ,/* t Indeksi viimeiseen l”ytyneeseen */ int *oliko_kuka_ei /* t Oliko se joka ei saa olla */ ) /* ** Funktiolla lasketaan montako muuta ehdon t„sm„lleen t„ytt„v„„ j„sent„ ** kerhosta l”ytyy. Palautetaan parametrina my”s viimeinen johon t„sm„si. ** ** Algoritmi: Verrataan jokaista paitsi ei-etsitt„v„„. ----------------------------------------------------------------------------*/ { int samat,j,montako=0; *viimeinen = -1; *oliko_kuka_ei = 0; for (j=0; jjasenia; j++) { switch (kentta) { case NIMIKENTTA: samat = strcmp(jono,kerho->jasenet[j]->nimi); break; case SOTUKENTTA: samat = strcmp(jono,kerho->jasenet[j]->sotu); break; default : samat = 1; } if ( samat == 0 ) { if ( j == kuka_ei ) *oliko_kuka_ei = 1; else { montako++; *viimeinen = j; } } } return montako; }