salve a tutti. Devo registrare una gara di tuffi e

VOTO
NOME
COGNOME

Allora, io ho creato una struct per tenere conto di tali dati.

Ovviamente, tralasciando gran parte del codice copio le cose importanti:
codice:
#include <stdio.h>
#include <string.h>

struct record {
	char nome[20];
	char cognome[20];
	int voto;
	} ;
	
void bubbleSortVoto(struct record r[], int array_size)
{
  int i, j;
  struct record temp;
 
  for (i = (array_size - 1); i > 0; i--)
  {
    for (j = 1; j <= i; j++)
    {
      if (r[j-1].voto > r[j].voto)
      {
        temp = r[j-1];
        r[j-1] = r[j];
        r[j] = temp;
      }
    }
  }
}


int main() {
	int n,p;
	int index = 0;
	int tuffatori;
	
	struct record r[32]; 


printf("** INSERIMENTO NOMINATIVI **\n");
			
			
			printf("Inserisci il Nome del %d  tuffatore\n", index);
			scanf("%s", r[index].nome);
			
			printf("Inserisci il Cognome del %d tuffatore\n", index);
			scanf("%s", r[index].cognome);
			
			/* -->inserimento voto <-- è stato spostato giù
			printf("Inserisci il voto del %d tuffatore\n", index);
			scanf("%d", &r[index].voto);
			*/
			
			index++;
			tuffatori = index;
			
		
		}

	printf("E' ora di inserire i voti\n\n");
			
			for(p = 0; p < tuffatori; p++){
			printf("Nome: %s\tCognome: %s\tVoto: ", r[p].nome, r[p].cognome);
			scanf("%d", &r[p].voto);
			}

//ORDINO PER VOTO
				bubbleSortVoto(r, index);


//ORDINAMENTO PER NOME

????

Come faccio ad ordinare per Nome e/o per Cognome?
Senza usare puntatori...? Ho provato ad adottare varie soluzioni... ma fin'ora solo buchi nell'acqua