76 lines
1.8 KiB
C++
76 lines
1.8 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
*/
|
|
|
|
#include <iostream>
|
|
#include <ctime>
|
|
|
|
#define USO 20
|
|
#define DIM 2000
|
|
#define VMAX 'z'
|
|
#define VMIN 'a'
|
|
|
|
using namespace std;
|
|
|
|
typedef struct{
|
|
char ch1;
|
|
char ch2;
|
|
}elemento;
|
|
|
|
typedef struct{
|
|
int CVU; //coppie vocali uguali
|
|
int CCU; //coppie consonanti uguali
|
|
int posizioni[DIM];
|
|
}result;
|
|
|
|
void initArray(elemento arr[], int size){
|
|
for(int i= 0; i < size ; i++){
|
|
arr[i].ch1 = rand()%(VMAX-VMIN+1)+VMIN;
|
|
arr[i].ch2 = rand()%(VMAX-VMIN+1)+VMIN;
|
|
}
|
|
}
|
|
void stampaArray(elemento arr[], int size){
|
|
for(int i= 0; i < size ; i++){
|
|
if(arr[i].ch1 == arr[i].ch2){
|
|
cout << arr[i].ch1 << endl;
|
|
cout << arr[i].ch2 << endl;
|
|
cout << endl;
|
|
}
|
|
}
|
|
}
|
|
|
|
result risultato(elemento arr[], int size){
|
|
int index=0;
|
|
result risultato = {0,0,0};
|
|
for(int i = 0; i<size ; i++){
|
|
if(arr[i].ch1 == arr[i].ch2){
|
|
risultato.posizioni[index]=i;
|
|
index++;
|
|
|
|
if(arr[i].ch1 == 'a' || arr[i].ch1 == 'e' || arr[i].ch1 == 'i' || arr[i].ch1 == 'o' || arr[i].ch1 == 'u'){
|
|
risultato.CVU++;
|
|
}
|
|
else{
|
|
risultato.CCU++;
|
|
}
|
|
}
|
|
}
|
|
return risultato;
|
|
}
|
|
|
|
int main(void){
|
|
srand(time(NULL));
|
|
elemento arr[DIM];
|
|
initArray(arr,USO);
|
|
stampaArray(arr,USO);
|
|
result Result = risultato(arr,USO);
|
|
cout<<"Indici di posizone degli elementi uguali: ";
|
|
for(int loop=0;loop<Result.CCU+Result.CVU;loop++){
|
|
cout<<Result.posizioni[loop]<<" ";
|
|
}
|
|
cout<<endl;
|
|
cout<< "Coppie consonanti uguali:" <<Result.CCU<<endl;
|
|
cout<< "Coppie vocali uguali:" <<Result.CVU<<endl;
|
|
return 0;
|
|
} |