Ошибочное поведение, показываемое вызовом функции

В приведенном ниже коде вызов функции isregistered (const struct *, int) показывает ошибочное поведение и вместо того, чтобы идти в определение функции для компиляции кода, он ничего не делает и не останавливает компиляцию программы.

Эта функция вызывает функцию isRegistered (const struct *, int), которая показывает ненормальное поведение.

bool isRegistered(const Prefix* p, const char* str, char area[],char publisher[], char title[])
{
int a=0,b,c,i,k,m,n,flag=0,rarr;
int arr[14];
double l,j;
int area1[20]={0};
int area2[20];
Prefix pre;
pre=*p;
for(i=0;i<13;i++)
{
arr[i]=str[i]-48;
}
a=arr[0]*100+arr[1]*10+arr[2];

if((a==978)||(a==979))
flag++;

k=0;
i=7;
n=4;
m=0;
while(m<5)
{
i=i-k;
j=0;
while(i>2)
{
l=pow(10,j);
area1[k]+=arr[i]*l; /*+a[i-1]*10*1+a[i-2]*10*10+a[i-3]*10*10*10+a[i-4]*10*10*10*10;*/
i--;
j++;
}
i=7;
area2[n]=area1[k];
k++;
n--;
m++;
}
i=0;
while((i<5)||(a==1))
{
rarr=area2[i];
cout<<rarr<<endl;
//if(isRegistered(&pre, rarr)==1)
//return 1;

//Here this is the problem area .
b=isRegistered(&pre ,rarr);      ***The erroneous behaviour occurs here. ***
i++;
}
cout<<endl;
//isRegistered(const Prefix* p, int area, const char* publisher)
return a;
}

Это определение функции isRegistered (const struct *, int)

bool isRegistered(const Prefix* pre, int area)
{
cout<<"hello";
int i=0,flag;
cout<<"hello";
if(area<8)
{
return 1;
}
else
{
while(i<615)
{
if(area==(pre->area[i]))
{
flag=1;
}
else
{
flag=0;
}
}
}
if(flag==1)
return 1;
else
return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]