ciao a tutti amici di html forum !
Sto facendo un programma in c# che deve fare queste cose:
-chiede quanti alunni ci sono in una classe e il loro voto.
-e poi li deve riordinare in ordine di voto dal più bravo al meno bravo.
Premetto che il programma l'ho già fatto solo che trova solo l'alunno più bravo e lo riordina correttamente ma gli altri no !
adesso posto il codice
codice:
            int numAlunni;
            bool inputOK;            
             do
            {
                Console.WriteLine("da quanti alunni è composta la classe ?");
                inputOK = int.TryParse(Console.ReadLine(), out numAlunni);
                if ((!inputOK) || (numAlunni <= 0))
                    Console.WriteLine("Errore input, Riprova!");
            } while ((numAlunni <= 0) || (!inputOK));
             string[] nomi = new string[numAlunni];// dichiaro l'array dei nomi
             float[] voti = new float[numAlunni];// dichiaro array voti
             int n = numAlunni;// variabile temporanea per lo scambio dei nomi
            Console.WriteLine("inserisci i nomi degli alunni che fanno parte della classe");
            for (int nome = 0; nome < numAlunni; nome++)// ciclo inserimento nomi
            {
                Console.WriteLine("alunno numero: " + (nome + 1));
                nomi[nome] = Convert.ToString(Console.ReadLine());
            }
            Console.WriteLine("ora inserisci il voto degli alunni");
            for (int voto = 0; voto < numAlunni; voto++)// ciclo inserimento voti
            {
                Console.WriteLine("voto numero: " + (voto + 1));
                voti[voto] = Convert.ToInt32(Console.ReadLine());
            }
            for (int iEsterno = 0; iEsterno < n-1; iEsterno++)//ciclo di riordinamento
            {
                float valoreMax = voti[iEsterno];
                int indiceMax = iEsterno; // individuo il massimo
                for (int iInterno = iEsterno + 1; iInterno < n-1; iInterno++)
                {
                    if (voti[iInterno] > valoreMax)
                    {
                        valoreMax = voti[iInterno];
                        indiceMax = iInterno;
                    }

                    voti[indiceMax] = voti[iEsterno];
                    voti[iEsterno] = valoreMax;
// scambio nomi
                    string nomeseccha = nomi[indiceMax];
                    nomi[indiceMax] = nomi[iEsterno];
                    nomi[iEsterno] = nomeseccha;
                }
            }
            for (int i = 0; i < numAlunni; i++)
            {
                Console.WriteLine(" " + nomi[i]);
            }
            Console.ReadLine();
ho messo anche i commenti spero si capisca dov'è il problema