le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
bug: definizioni multiple
Il tuo problema è che hai riscontrato un errore "il riferimento a 'dati' è ambiguo" nel tuo codice C++. Questo errore si verifica in genere quando si tenta di fare riferimento a una variabile con più definizioni.
Nel tuo codice definisci una variabile globale data. Allo stesso tempo, c'è anche un modello di funzione denominato data nella libreria standard C++. Quando si utilizzano i dati nella funzione fib, il compilatore non è in grado di determinare se si desidera fare riferimento alla variabile globale data o std::data, quindi restituisce un errore ambiguo.
Per risolvere questo problema, è possibile modificare il nome dei dati della variabile globale o specificare esplicitamente che si desidera fare riferimento alla variabile globale durante la chiamata.
Soluzione 1: modificare il nome della variabile globale
cpp
#includere<iostream>
utilizzando lo spazio dei nomi std;
int mod=1e9+7;
int fibData[10000]; //Cambia nome
int fib(int n){
se(n==1||n==2){fibData[n]=1;ritorna fibData[n];}
se(fibData[n]!=0)restituisci fibData[n];
fibData[n]=fibData[n-1]+fibData[n-2];
restituisci fibData[n];
}
int principale() {
int t;
cin>>t;
per(int i=0;i
interno n;
cin>>n;
conto
}
restituisci 0;
}
Soluzione 2: specificare esplicitamente che si desidera fare riferimento a una variabile globale durante la chiamata
cpp
#includere<iostream>
utilizzando lo spazio dei nomi std;
int mod=1e9+7;
int dati[10000];
int fib(int n){
if(n==1||n==2){::data[n]=1;return ::data[n];} // Aggiungi '::' davanti per specificare chiaramente che vuoi fare riferimento al variabile globale
se(::dati[n]!=0)ritorna ::dati[n];
::dati[n]=::dati[n-1]+::dati[n-2];
ritorno::data[n];
}
int principale() {
int t;
cin>>t;
per(int i=0;i
interno n;
cin>>n;
conto
}
restituisci 0;
}