Ecco il codice corretto. Leggi le note che ti ho messo e raggionaci sopra.
Fare un programma del genere ci si mette 5 minuti (davvero, il tempo di scrivere il tutto).Ma devi essere bravo ad avere l'algoritmo già in mente.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXDIMSTRINGHE 200
typedef
struct{
char nome[MAXDIMSTRINGHE];
char cognome[MAXDIMSTRINGHE];
char telefono[MAXDIMSTRINGHE];
} account ;
//account anonimo; //che ci fa sto anonimo quà sopra se l'hai definito nel main con lo steso nome ed è un vettore?
/*
typedef struct {
int numero_contatti;
} numcont;
numcont numero;
*/
/* E' buon uso mettere tutte le varibili che non andrai a modificare come const
/* cosi' se per sbaglio li modifichi il compilatore ti dara' errore
*/
void inserisci (const char n[MAXDIMSTRINGHE],const char m[MAXDIMSTRINGHE],const char t[MAXDIMSTRINGHE], account * anonimo, int & num_account)
{
strcpy (anonimo[num_account].nome,n);
strcpy (anonimo[num_account].cognome,m);
strcpy (anonimo[num_account].telefono,t);
}
//mancavano i riferimenti del vettore e l'index
void visualizza (const account *anonimo, const int & index)
{
printf("\n Nome: %s Cognome: %s Numero: %s\n ",anonimo[index].nome,anonimo[index].cognome,anonimo[index].telefono);
}
void bubbleSort(account *anonimo, int & num_account)
{
int j = num_account - 1;
int i = 0;
while(j > 0)
{
for(i = 0; i < j; i++)
{
if(strcmp(anonimo[i].cognome,anonimo[i+1].cognome) > 0)
{
account temp;
strcpy(temp.cognome,anonimo[i].cognome);
strcpy(temp.nome,anonimo[i].nome);
strcpy(temp.telefono,anonimo[i].telefono);
strcpy(anonimo[i].cognome,anonimo[i+1].cognome);
strcpy(anonimo[i].nome,anonimo[i+1].nome);
strcpy(anonimo[i].telefono,anonimo[i+1].telefono);
strcpy(anonimo[i+1].cognome,temp.cognome);
strcpy(anonimo[i+1].nome,temp.nome);
strcpy(anonimo[i+1].telefono,temp.telefono);
}
}
j--;
}
}
int main() {
//dichiarazione di variabili
account anonimo[100];
int i = 0;
int numero = 0; //primo errore numero è un int oppure un struct definto sopra?
// prendiamo per buono che sia un int
int num_account = 0;
char nom[MAXDIMSTRINGHE],cogn[MAXDIMSTRINGHE],tel[MAXDIMSTRINGHE];
printf("Quanti contatti vuoi inserire?");
scanf("%d", &numero);
for(i = 0; i < numero; i++)
{
printf("Inserire il nome: ");
scanf("%s", &nom);
printf("Inserire il cognome:");
scanf("%s", &cogn);
printf("Inserire il telefono:");
scanf("%s", &tel);
inserisci (nom,cogn,tel, anonimo, num_account);
num_account++;
}
for(i = 0; i < numero; i++)
{
visualizza(anonimo,i);
}
system("PAUSE");
return 0;
}