#c
Вопрос:
Я создал калькулятор рядов Фибоначчи ( fibo
), но он вызывает ошибку
#include lt;iostreamgt; #include lt;cstringgt; using namespace std; struct numtag { unsigned long num; char tag[60]; }; char *primality(const unsigned long,unsigned long i=0); numtag *fiboPrime(const unsigned long,unsigned long i=0,numtag fibo[]={{0,primality(0)},{1,primality(1)}}); int main(){}; char *primality(unsigned long p,unsigned long i) { if(plt;=1) return "NEITHER PRIME NOR COMPOSITE"; else if(p==2||p==3) return "tPRIME"; else if(p%2==0||p%3==0) return "tCOMPOSITE"; else if(nlt;5) i=5; if(i*ilt;=p) if(p%i==0||p%(i 2)==0) return "tCOMPOSITE"; else return primality(p,i 6); else return "tPRIME"; }; numtag *fiboPrime(unsigned long n,unsigned long i,numtag *fibo){//I need to figure this out};
Это приводит к ошибке: [Error] could not convert '{{0, primality(0, 5)}, {1, primality(1, 5)}}' from 'lt;brace-enclosed initializer listgt;' to 'numtag*'
Пожалуйста, Помогите Мне
Комментарии:
1. C-массивы нельзя копировать, использовать
std::array
илиstd::vector
заменять.2. Литерал C-строк есть
const char[N]
, поэтому возвращайтеconst char*
вместоchar*
.3. Это не связано со строковыми литералами/ Это связано с массивом numtag в функции fiboPrime
4. Вы не можете инициализировать
tag
массив с помощьюchar*
. Просто делай, как говорит Джарод 42.5. Я не могу инициализировать массив в объявлении функции. Даже массив int не работает