minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
bug - múltiplas definições
Seu problema é que você encontrou um erro "referência a 'dados' é ambígua" em seu código C++. Este erro geralmente ocorre quando você tenta fazer referência a uma variável que possui múltiplas definições.
Em seu código, você define uma variável global data. Ao mesmo tempo, há também um modelo de função chamado data na biblioteca padrão C++. Quando você usa dados na função fib, o compilador não pode determinar se você deseja se referir à variável global data ou std::data, portanto, ocorre um erro ambíguo.
Para resolver esse problema, você pode alterar o nome dos dados da variável global ou especificar explicitamente que deseja fazer referência à variável global ao chamar.
Solução 1: altere o nome da variável global
cpp
#incluir<iostream>
usando namespace std;
int mod=1e9+7;
int fibData[10000]; //Alterar nome
int fib(int n){
se(n==1||n==2){fibData[n]=1;retornar fibData[n];}
se(fibData[n]!=0)retorne fibData[n];
Dadosfib[n]=Dadosfib[n-1]+Dadosfib[n-2];
retornar fibData[n];
}
int principal() {
int t;
cin>>t;
para(int i=0;i
int n;
cin>>n;
corte<
}
retornar 0;
}
Solução 2: especifique explicitamente que deseja fazer referência a uma variável global ao chamar
cpp
#incluir<iostream>
usando namespace std;
int mod=1e9+7;
dados int[10000];
int fib(int n){
if(n==1||n==2){::data[n]=1;return ::data[n];} // Adicione '::' na frente para especificar claramente que você deseja fazer referência ao variável global
se(::dados[n]!=0)retornar ::dados[n];
::dados[n]=::dados[n-1]+::dados[n-2];
retornar ::dados[n];
}
int principal() {
int t;
cin>>t;
para(int i=0;i
int n;
cin>>n;
corte<
}
retornar 0;
}