Forse questo esempio può esserti utile. E' un programma che chiede di inserire da tastiera i dati relativi agli studenti, li inserisce nella matrice che ha struttura
studente ed infine li mette in ordine alfabetico( usando l'algoritmo bubble sort) prima di stampare a schermo.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
#define M 40
int main()
{
struct studente{
char cognome[M], nome[M];
unsigned int matricola;
float v1, v2, v3;
};
struct studente v[N], appoggio;
unsigned int i, pos[N], k = 0;
puts("<COGNOME> <NOME> <MATRICOLA> <VOTO1> <VOTO2> <VOTO3>");
for(i = 0; i < N; i++){
scanf("%s %s %d %f %f %f", v[i].cognome, v[i].nome, &v[i].matricola, &v[i].v1, &v[i].v2, &v[i].v3);
}
for(i = 0; i < N-1; i++){
for( k = 0; k < (N-1)-i; k++ ){
if( strncmp(v[k].cognome, v[k+1].cognome, M) > 0){
appoggio = v[k];
v[k] = v[k+1];
v[k+1] = appoggio;
}
}
}
puts("\nOrdine alfabetico");
puts("<COGNOME> <NOME> <MATRICOLA> <VOTO1> <VOTO2> <VOTO3>");
for(i = 0; i < N; i++){
printf("%-12s %-12s %-12d %-8.2f %-8.2f %-8.2f %-.2f\n", v[i].cognome, v[i].nome, v[i].matricola, v[i].v1, v[i].v2, v[i].v3);
}
return 0;
}