Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-03-2012, 13:19   #1
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
[c++] ESERCIZIO ARRAY DI PUNTATORI CHAR

Ho svolto questo esercizio...mi compila ma mi da un errore "il programma ha smesso di funzionare ecc..." in fase di esecuzione! Cosa non va??

La tua amica Renata Limbranata è nei guai. Si è sposata solo pochi giorni fa eppure il suo matrimonio sembra già andare a rotoli. Suo marito passa la maggior parte del giorno al computer a scrivere mail di lavoro (dice lui!), ma lei è molto sospettosa, non riesce a credere che si sia portato il lavoro anche in viaggio di nozze… E così ha deciso! Approfittando delle assenze del marito ti ha inoltrato tutte le sue mail (circa un centinaio), pregandoti di leggerle e farle sapere se, come sospetta lei, il marito ha un’amante. Tu però, che conosci Renata e che sai quanto possa essere paranoica a volte, decidi di non sprecare belle giornate a leggere mail con molta probabilità noiose e di affidarti alle tue abilità informatiche per risparmiare tempo. A tale scopo, si scriva in C++ un programma completo opportunamente modularizzato in funzioni che, dato in input l’elenco delle mail di Renata (che per semplicità si può implementare come array di stringhe) conti quante sono le mail in cui è contenuta almeno una tra le seguenti parole: amore, tesoro, cucciolotto, trottolino.

MIA SOLUZIONE:
Codice:
#include <iostream>
using namespace std;

int confronta(char *email[], char  *parole[]);

int main(){
    int numero_email=0;
char *email[10]={"Ciao amore come va","senti tesoro", "sei un cretino" };
char *parole[10]={"amore","tesoro","cucciolotto", "trottolino"};
numero_email=confronta(email,parole);
cout<<"Il numero delle email sospette è:"<<numero_email<<endl;
   
    
system("pause");
return 0;
}

int confronta(char *email[], char  *parole[]){
     int conta=0;
     for(int i=0; email[i]; i++){
             for(int j=0; parole[i]; j++){     
        if(email[i] == parole[j])
        conta++;
        }
       }
return conta;      
}
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2012, 14:47   #2
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Soprassederò sull'opportunamente modularizzato e sul fatto che è poco C++

Un errore evidente è che confronti le stringe che usi, che sono quelle del C, con l'operatore ==. Dovresti usare la funzione strcmp. Altrimenti, anziché usare le stringe del C(char*), potresti usare quelle definite nella standard library del C++(string) e continuare ad usare ==.

Un altro errore, questa volta logico, è che il numero di mail sospette sarà sempre 0, a meno di avere intere mail uguali ad una delle parole da ricercare.

Ultima modifica di ndakota : 04-03-2012 alle 14:50.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2012, 18:40   #3
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quindi metto la strcmp()...ok

Mentre per l errore logico come risolvo?

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2012, 19:47   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Usa la funzione strstr. A questo punto strcmp non ti serve più
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 01:11   #5
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Ma a me serve un modo di far restituire alla funzione il risultato di conta che sarebbe il numero delle enail che contengoni una parola tra quelle

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 01:19   #6
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Ma a me serve un modo di far restituire alla funzione il risultato di conta che sarebbe il numero delle enail che contengoni una parola tra quelle

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 09:48   #7
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Codice:
if(strstr(parole[j], email[i]))
    conta++;
Verifica che la parola è contenuta nella mail. Non è quello che vuoi?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 10:49   #8
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Codice:
if(strstr(parole[j], email[i]))
    conta++;
Verifica che la parola è contenuta nella mail. Non è quello che vuoi?

No! Io voglio CONTARE le email che contengono una di quelle parole!
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 11:08   #9
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
E' quello che vuoi eh. Poi se vuoi contare al massimo 1 per ogni mail c'è solo una piccola modificare da fare e mi sembra che a questo punto puoi anche fartela da solo
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 12:13   #10
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da ndakota Guarda i messaggi
E' quello che vuoi eh. Poi se vuoi contare al massimo 1 per ogni mail c'è solo una piccola modificare da fare e mi sembra che a questo punto puoi anche fartela da solo
ho provato ma non va lo stesso.. mi restituisce ancora 0!
Codice:
#include <iostream>
using namespace std;

int confronta(char *email[], char  *parole[]);

int main(){
    int numero_email=0;
char *email[4]={"Ciao amore come va","senti tesoro", "sei un cretino" };
char *parole[5]={"amore","tesoro","cucciolotto", "trottolino"};
numero_email=confronta(email,parole);
cout<<"Il numero delle email sospette e':"<<numero_email<<endl;
   
    
system("pause");
return 0;
}

int confronta(char *email[], char  *parole[]){
     int conta=0;
     for(int i=0; email[i]; i++){
             for(int j=0; parole[j]; j++){     
        if(strstr(parole[j], email[i]))
        conta++;
        }
       }
return conta;      
}
Mi sorge un dubbio... può essere che le parole di ogni frase vanno separate?
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 12:22   #11
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Ho fatto caso ora alle condizioni dei for. Perchè le hai fatte così?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 12:38   #12
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Ho fatto caso ora alle condizioni dei for. Perchè le hai fatte così?
cioè?

Comunque ho fatto una prova con la strcmp() e mi restituisce 12...cioè il numero delle lettere di tutte le parole contenute in tutte le email..
sarebbero "amore" e "tesoro".. ed evidentemente mette un carattere in piu o conta lo spazio..

Ora... a me servirebbe contare quante email contengono una di quelle parole specificate! Come faccio?

Ultima modifica di mistergks : 05-03-2012 alle 13:53.
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 16:03   #13
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Scusa, gli argomenti di strstr dovevano essere passati all'inverso.

A me così funziona

Codice:
#include <iostream>
#include <cstring>
using namespace std;

int confronta(const char *email[], const char  *parole[]);

int main(){
    int numero_email=0;
    const char *email[3]={"Ciao amore come va","senti tesoro", "sei un cretino" };
    const char *parole[4]={"amore","tesoro","cucciolotto", "trottolino"};
    numero_email=confronta(email,parole);
    cout<<"Il numero delle email sospette e':"<<numero_email<<endl;

    return 0;
}

int confronta(const char *email[], const char  *parole[]){
     int conta=0;
     for(int i=0; i < 3; i++){
        for(int j=0; j < 4; j++){
           if(strstr(email[i], parole[j]))
              conta++;
        }
     }
     return conta;
}
Compilo con

Codice:
g++ -Wall -o es es.cpp
Ed eseguo con

Codice:
./es
Output

Codice:
Il numero delle email sospette e':2
Bè, è chiaramente da sistemare. Ho cablato nel codice le dimensioni degli array.

Qualche nota sparsa:
Ho riaddato la dimensione degli array a quella che usavi effettivamente
Ho aggiunto la libreria cstring per poter usare strstr() o strcmp()
Ho invertito come detto gli argomenti a strstr()
Ho cambiato le condizioni dei for

Ultima modifica di ndakota : 05-03-2012 alle 16:16.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 16:44   #14
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Ora funziona anche a me!! Però mi rimangono dei dubbi:
1)perché gli array char li hai dichiarati const? Ho provato a cancellare const da dichiarazioni e funzione ma mi da errori di compilazione
2)se volesso farlo generico e quindi senza sapere la size degli array? I cicli for sarebbero sbagliati..perchè dovrebbero continuare su tutti gli elementi
3)la strstr() non so se posso usarla! C'é un altro metodo?!
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2012, 19:36   #15
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
1) E' buona norma aggiungerlo negli argomenti di funzione se non devi modificarli. Così ti proteggi da modifiche accidentali. In ogni caso togliendoli tutti non dovrebbe darti errore, credo al massimo warning.

2) Negli array stile C non c'è modo di sapere la dimensione.

Modo C++ C++(sì, due volte)

Codice:
vector<string> parole;

// gli metto dentro degli elementi

for(int i = 0; i < parole.size(); i++) {
Modo C++ stile C

Codice:
const int dim = 5;
char* parole[dim] = { ... };

confronta(parole, dim);

// nella funzione confronta

for(int i = 0; i < dim; i++) {
Modo C++ stile C con variabili globali

Codice:
const int dim = 5;

// nel main

char* parole[dim] = { ... };

confronta(parole);

// nella funzione confronta

for(int i = 0; i < dim; i++) {
Quindi insomma, non c'è un vero e proprio modo in C. A meno di non crearti una sorta di array dinamico, dove ogni volta che ce n'è bisogno riallochi il vettore con un elemento in più. C'è da sbattersi un attimo.

3) Certo.. Puoi ad esempio scorrere la mail carattere per carattere finchè non becchi l'iniziale della parola(se c'è, almeno sembra essere abbastanza efficiente) e controllare che sia quella. E' un po' intricato ma un buon esercizio
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2012, 19:35   #16
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Ho provato a fare una versione con input generico... cioè le email le inserisce l'utente..e ho messo una variabile int che riceve la lunghezza dell'array email.
Ho compilato ed eseguito...mi fa inserire le email ma appena premo INVIO mi crasha e smette di funzionare terminandosi.
Cos'è che non va?!
Se può servire...ho compilato con windows..


Codice:
#include <iostream>
#include <cstring>
using namespace std;

int confronta(char *email[], char  *parole[], int size);

int main(){
    int numero_email=0;
    char *email[20];
    char *parole[]={"amore","tesoro","cucciolotto", "trottolino"};
    int size=0;
    cout<<"inserisci le emails: "<<endl; 
    cin.getline(*email,20);
    size=strlen(*email);
    
    numero_email=confronta(email,parole,size);
    cout<<"Il numero delle email sospette e':"<<numero_email<<endl;

system("pause");
return 0;
}

int confronta(char *email[], char  *parole[], int size){
     int conta=0;
     for(int i=0; i < size; i++){
        for(int j=0; j < size; j++){
           if(strstr(email[i], parole[j]))
              conta++;
        }
     }
     return conta;
}
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2012, 11:21   #17
rootshooter
Member
 
Iscritto dal: Nov 2006
Messaggi: 201
Quote:
Originariamente inviato da mistergks Guarda i messaggi
Ho provato a fare una versione con input generico... cioè le email le inserisce l'utente..e ho messo una variabile int che riceve la lunghezza dell'array email.
Ho compilato ed eseguito...mi fa inserire le email ma appena premo INVIO mi crasha e smette di funzionare terminandosi.
Cos'è che non va?!
Se può servire...ho compilato con windows..


Codice:
#include <iostream>
#include <cstring>
using namespace std;

int confronta(char *email[], char  *parole[], int size);

int main(){
    int numero_email=0;
    char *email[20];
    char *parole[]={"amore","tesoro","cucciolotto", "trottolino"};
    int size=0;
    cout<<"inserisci le emails: "<<endl; 
    cin.getline(*email,20);
    size=strlen(*email);
    
    numero_email=confronta(email,parole,size);
    cout<<"Il numero delle email sospette e':"<<numero_email<<endl;

system("pause");
return 0;
}

int confronta(char *email[], char  *parole[], int size){
     int conta=0;
     for(int i=0; i < size; i++){
        for(int j=0; j < size; j++){
           if(strstr(email[i], parole[j]))
              conta++;
        }
     }
     return conta;
}
Stai iterando parole[] con la stessa dimensione di email[] ?
rootshooter è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2012, 19:38   #18
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da rootshooter Guarda i messaggi
Stai iterando parole[] con la stessa dimensione di email[] ?
E' vero...ma anche correggendo:
Codice:
int confronta(char *email[], char  *parole[], int size){
     int conta=0;
     for(int i=0; i < size; i++){
        for(int j=0; j < 4; j++){
           if(strstr(email[i], parole[j]))
              conta++;
        }
     }
     return conta;
}
la situazione non cambia!!
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2012, 10:04   #19
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Le sfaccettature dei metodi di i/o sono davvero molte, però non mi sembra proprio corretto l'utilizzo che fai delle stringhe stile c per immettere le email. Una stringa stile c altro non è che un array di char che termina con un carattere NULL ('\0'). La si può pertanto utilizzare con un puntatore char al primo elemento di tale array (il nome di un array, d'altro canto, altro non è che un puntatore al primo elemento dell'array). Tu dichiari una serie di puntatori:
Codice:
char *mail[20];
per la precisione 20 puntatori a stringhe stile c che però non inizializzi!
Un puntatore char non è una stringa, se non viene inizializzato, cioè se ad esso non viene assegnata un'area di memoria contenente per l'appunto una stringa null-termined.
Per esempio:

Codice:
const char *parola = "questo è un literal!";
altro non fa che definire un literal (una stringa tra doppie virgole) assegnandoli un'area di memoria, quindi tale area viene fatta puntare dal puntatore parola (che punterà il primo carattere della stringa/array così generato).

Tornando al tuo esempio, se devi inserire delle stringhe a runtime (inserendole da tastiera) o utilizzi la classe delle librerie standard "string" che gestisce l'allocazione di memoria da sè, oppure allochi tu staticamente della memoria per le stringhe che andrai ad inserire. Mettiamo per esempio che vuoi gestire un massimo di 5 mail contenente ognuna un massimo di 200 caratteri. Allora dovrai scrivere così:
Codice:
    char mail[5][200];
    for (int i = 0; i < 5; i++) {
        cin.getline(mail[i],200);
    }
e dopo confrontare le stringhe puntando di volta in volta all'iesima posizione dell'array: array[i].
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2012, 11:50   #20
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Le sfaccettature dei metodi di i/o sono davvero molte, però non mi sembra proprio corretto l'utilizzo che fai delle stringhe stile c per immettere le email. Una stringa stile c altro non è che un array di char che termina con un carattere NULL ('\0'). La si può pertanto utilizzare con un puntatore char al primo elemento di tale array (il nome di un array, d'altro canto, altro non è che un puntatore al primo elemento dell'array). Tu dichiari una serie di puntatori:
Codice:
char *mail[20];
per la precisione 20 puntatori a stringhe stile c che però non inizializzi!
Un puntatore char non è una stringa, se non viene inizializzato, cioè se ad esso non viene assegnata un'area di memoria contenente per l'appunto una stringa null-termined.
Per esempio:

Codice:
const char *parola = "questo è un literal!";
altro non fa che definire un literal (una stringa tra doppie virgole) assegnandoli un'area di memoria, quindi tale area viene fatta puntare dal puntatore parola (che punterà il primo carattere della stringa/array così generato).

Tornando al tuo esempio, se devi inserire delle stringhe a runtime (inserendole da tastiera) o utilizzi la classe delle librerie standard "string" che gestisce l'allocazione di memoria da sè, oppure allochi tu staticamente della memoria per le stringhe che andrai ad inserire. Mettiamo per esempio che vuoi gestire un massimo di 5 mail contenente ognuna un massimo di 200 caratteri. Allora dovrai scrivere così:
Codice:
    char mail[5][200];
    for (int i = 0; i < 5; i++) {
        cin.getline(mail[i],200);
    }
e dopo confrontare le stringhe puntando di volta in volta all'iesima posizione dell'array: array[i].
Forse mi sono un pò perso! Vuoi dire che sbaglio proprio la struttura dati?! O meglio non la sbaglio..ma andrebbe inizializzata oppure non usata proprio..vero?
Ma quello che hai proposto tu non è una matrice di char?! non ho ben capito come funziona


Forse intendi una cosa del genere?
Codice:
#include <iostream>
#include <cstring>
using namespace std;

int confronta(char email[5][200], char  *parole[], int size);

int main(){
    int numero_email=0;
    char email[5][20];
    char *parole[]={"amore","tesoro","cucciolotto", "trottolino"};
    int size=0;
    cout<<"inserisci le emails: "<<endl; 
    for(int i=0; i<5; i++)
    cin.getline(email[i],20);
    cout<<"Il numero delle email sospette e':"<<confronta(email,*parole,size)<<endl;

system("pause");
return 0;
}

int confronta(char email[5][200], char  *parole[], int size){
     int conta=0;
     for(int i=0; i < size; i++){
        for(int j=0; j < 4; j++){
           if(strstr(email[i], parole[j]))
              conta++;
        }
     }
     return conta;
}

Ultima modifica di mistergks : 08-03-2012 alle 11:58.
mistergks è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
TikTok lancia il nuovo feed con contenut...
Amazon aggiorna gli sconti e si prepara ...
GeForce NOW: 50% di sconto e 30 nuovi gi...
Insta360 Ace Pro 2 in offerta: disponibi...
Roborock Saros 10R a 909€ invece di 1.39...
Solo oggi due monitor Acer a prezzi assu...
FRITZ!Box in forte sconto su Amazon: mod...
Apple + Samsung = monopolio totale nel Q...
6 TV 4K in super sconto su Amazon, anche...
Lava, aspira a 9000Pa e ha la stazione d...
Il nuovo OnePlus 15R avrà una bat...
SpaceX: capitalizzazione di 800 miliardi...
'L'UE dovrebbe essere abolita': la spara...
Non solo smartphone: Samsung sta lavoran...
Nessuno vuole comprare iPhone Air: il va...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v