//sia dato un file di testo costituito da una sequenza di nomi:stampare a video i nomi che si ripetono di più
#include<iostream>
#include<string.h>
#define N 5
using std::cin;
using std::cout;
typedef struct struttura { char nomi[N];
int conta;
}struttura;
void input(int n,struttura *insieme)
{ int x;
for(x=0;x<n;x++)
{ cout<<"\n inserire la prima parola : ";
cin>>insieme[x].nomi;
}
}
void conta(int n,struttura *insieme)
{ int i,y,s=0,t;
for(y=0;y<n;y++)
{ for(i=n;i>0;i--)
{t=strcmp(insieme[i].nomi,insieme[y].nomi);
if(t==0)
{++s;
}
}
insieme[y].conta=s;
}
}
void stampa(int n,struttura *insieme)
{int w;
cout<<"\n di seguito si elencano i nomi che sono stati ripetuti e la loro frequenza: \n";
for(w=0;w<n;w++)
{ if(insieme[w].conta>1)
{ cout<<"\n"<<insieme[w].nomi<<" ripetuto "<<insieme[w].conta<<" volte \n";
}
}
}
int main()
{ int n;
cout<<"\n quante parole si vogliono inserire ? ";
cin>>n;
struttura insieme[n];
input(n,insieme);
conta(n,insieme);
stampa(n,insieme);
}
la funzione conta dovrebbe restituirmi una struttura costituita dai nomi ed un vettore di numeri che rappresenta quante volte la parola è stata ripetuta..purtroppo non riesco a capire perchè nell'exe mi escono numeri a caso..come potrei risolvere??cosa ho sbagliato a livello logico??