codice:
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
typedef struct rubrica{
char cognome[15];
char nome[15];
char numero[20];
}rubrica;
//rubrica riga[20];
//int vett[20];
rubrica riga[] = {
{"b","",""},
{"d","",""},
{"a","",""},
{"c","",""}
};
int vett[] = {0, 1, 2, 3};
int scelta=0,a=0,cont=0,vuoto=0;
void inserimento(),stampa(),cerca(),modifica(),ordina();
char risp='s';
void inserimento()
{
vuoto=1;
do{
system("cls");
cout<<"Cognome:"<<" "; cin>>riga[cont].cognome;
cout<<"Nome:"<<" "; cin>>riga[cont].nome;
cout<<"Numero di telefono:"<<" "; cin>>riga[cont].numero;
cout<<"Vuoi inserire un altro elemento? (s/n)";
cin>>risp;
cont++;
}while(risp=='s');
system("cls");
a=cont;
}
void stampa()
{
for(cont=0; cont<a; cont++)
{
cout<<"Cognome:"<<riga[vett[cont]].cognome<<endl;
cout<<"Nome:"<<riga[cont].nome<<endl;
cout<<"Numero di telefono:"<<riga[cont].numero<<endl;
}
system("Pause");
system("cls");
}
void ordina()
{
int flag = 0;
do {
flag = 0;
for(int k=0; k<a-1; k++) {
if(strcmp(riga[vett[k]].cognome, riga[vett[k+1]].cognome) > 0) {
int com = vett[k];
vett[k]= vett[k+1];
vett[k+1]= com;
flag=1;
}
}
} while(flag==1);
}
ho tolto la funzione modifica ,cerca e il main ( dalla risposta), però li potete vedere nel mio primo messaggio
così funziona, però come vedi ho commentato //rubrica riga[20]; //int vett[20]; e non ho commentato quelli che mi hai scritto te: se faccio il contrario non va