Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
ho 2 vettori paralleli (codicestudente e votostudente) e li ho ordinati col bubble sort e ora devo trovare l'elemento piu alto e piu basso, con gli eventuali copioni, se tipo ci sn 2 voti uguali e tutti e 2 sn i piu alti devo stamparli tt e 2..è possibile? dveo farlo sia con i piu alti che i piu bassi che ovviamente saranno i primi e gli ultimi elementi dei 2 vettori visto che sono ordinati..
un aiutino raga eheh ce sto a impazzì
avevo pensato di usare altri 2 vettori per ogni routine così:
Codice sorgente - presumibilmente C++
//ROUTINE RICERCA DEI MINIMI VOTI
void MIN(int vot[],int codice[],int bound)
{
int k,minn=0,minimi[100],codmin[100];
return;
}
//ROUTINE RICERCA DEI MASSIMI VOTI
void MAX(int vot[],int codice[],int bound)
{
int k,maxx=0,massimi[100],codmax[100];
return;
}
dove bound corrisponde al limite massimo del vettore e k è l'indice da usare in un eventuale for
-grazie risolto con po d ingegno e senza usare altri vettori- basta il cervello eheh ma velo giuro ero in depressione da mancanza di codice !!
Ultima modifica effettuata da dimxasinteger il 29/10/2008 alle 0:33
TENENDO CONTO CHE I VETTORI SONO STATI ORDINATI CON BUBBLE SORT:
Codice sorgente - presumibilmente C++
//ROUTINE RICERCA DEI MASSIMI VOTI
void MAX(int vot[],int codice[],int bound)
{
int k,flag=0,massimi=0,codmax=0;
massimi=vot[bound];
codmax=codice[bound];
printf("\nGli Alunni Relativi Ai Codici: ");
for(k=bound;k>=0;k=k-1)
{
if(vot[k]<massimi)
{break;}
elseif(vot[k]==massimi)
{printf("{%d}",codice[k]);
flag=1;
}
}
if(flag==1)
{printf("\n Hanno Preso Tutti: %d",vot[bound]);}
return;
}
//ROUTINE RICERCA DEI MINIMI VOTI
void MIN(int vot[],int codice[],int bound)
{
int k,minimi,codmin,flag=0;
minimi=vot[0];
codmin=codice[0];
printf("\nGli Alunni Relativi Ai Codici: ");
for(k=0;k<=bound;k++)
{
if(minimi==vot[k])
{
printf("{%d}",codice[k]);
flag=1;
}
elseif(vot[k]>minimi)
{break;}
}
if(flag==1)
{printf("\n Hanno Preso Tutti: %d",vot[0]);}
return;
}
il ragionamento è: per i massimi parto dall'ultimo e cerco TUTTI quelli uguali all'ultimo (e quindi piu alto valore del vettore) finche non è minore (vot[k]<massimi) lo so che si poteva fare con un while ed era piu bellino sinceramente, e come vedete l'ho fatto con un for al contrario (dall'ultimo al primo) e per quanto riguarda i minimi del vettore ho fatto il contrario dei massimi: dal primo impostato come "il minimo piu basso" cerco tutti quelli uguali finche non ne trovi uno piu alto (anche questo si poteva fare con un while, ma infatti ora lo cambio) vediamo 1po come rompercisi la testa, tanto ho 3 ore stasera e le dedico totalmente al programmino in questione a proposito ciao piero e grazie di essere passato dal mio topic
-una volta fatto anche con il while, vuoi che posto pure quello?-
-dubbio: se esiste i++, esiste pure i-- per il decremento?-
Ultima modifica effettuata da dimxasinteger il 29/10/2008 alle 12:32
ho riprogettato la routine unica, ma se potete darmi una mano sulle 2 postate sopra, siete dei grandi.
ora posto il codice "base" per la routine unica:
Codice sorgente - presumibilmente C++
void RICERCA(int ,int ,int choose)
{
switch(choose)
{
case2:
//MASSIMI
break;
case3:
//MINIMI
break;
}
}
}
dove al posto del commento andrebbero i codici valevoli per tutti i casi, dando come flag se andare all'ingiu o all'insu la varabile "choose" che se vale 2 deve trovare i massimi e se vale 3 i minimi..help help!!
P.P.P.S. (tra poco finisco le P)
però il mio pensiero è: se ci metto lo switch case siamo punto e a capo: servono 2 routine separate!
Ultima modifica effettuata da dimxasinteger il 29/10/2008 alle 12:58