моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ошибка - несколько определений
Ваша проблема в том, что вы столкнулись с ошибкой «ссылка на данные неоднозначна» в коде C++. Эта ошибка обычно возникает, когда вы пытаетесь сослаться на переменную, имеющую несколько определений.
В вашем коде вы определяете глобальную переменную data. В то же время в стандартной библиотеке C++ есть шаблон функции с именем data. Когда вы используете данные в функции fib, компилятор не может определить, хотите ли вы ссылаться на глобальную переменную data или на std::data, поэтому выдает неоднозначную ошибку.
Чтобы решить эту проблему, вы можете изменить имя данных глобальной переменной или явно указать, что вы хотите ссылаться на глобальную переменную при вызове.
Решение 1. Измените имя глобальной переменной.
cpp
#включать<iostream>
с использованием пространства имен std;
целое число mod=1e9+7;
int fibData[10000] //Изменить имя
целочисленный фиб(целочисленный n){
если(n==1||n==2){fibData[n]=1;возврат fibData[n];}
если (fibData[n]!=0)возврат fibData[n];
fibData[n]=fibData[n-1]+fibData[n-2];
вернуть fibData[n];
}
инт мейн() {
целочисленный т;
cin>>t;
для (целое i=0;i
целочисленное n;
цин>>н;
cout<
}
вернуть 0;
}
Решение 2. Явно укажите, что вы хотите ссылаться на глобальную переменную при вызове.
cpp
#включать<iostream>
с использованием пространства имен std;
целое число mod=1e9+7;
int данные[10000];
целочисленный фиб(целочисленный n){
if(n==1||n==2){::data[n]=1;return ::data[n];} // Добавьте '::' впереди, чтобы четко указать, что вы хотите ссылаться на глобальная переменная
если(::data[n]!=0)вернуть ::data[n];
::данные[n]=::данные[n-1]+::данные[n-2];
возврат ::data[n];
}
инт мейн() {
целочисленный т;
cin>>t;
для (целое i=0;i
целочисленное n;
цин>>н;
cout<
}
вернуть 0;
}