이 프로그램 (Collatz Conjecture)을 실행 중이 었는데 33 번 줄에서 세그먼트 오류가 발생했지만 33 번 블록은 블록의 끝에 }
입니다. 스택 문제인지 나는 모른다. 도울 수 있니?Collatz의 세그먼트 오류 C의 추측 프로그램
int main(int argc, char** argv) {
int x,y,temp;
int maximum_cycle[MAX_NUMERO];
scanf("%d",&x);
scanf("\n%d",&y);
if (x>y){
temp=x;
x=y;
y=temp;
}
hallarNumeroCiclo(x,y,&maximum_cycle[MAX_NUMERO]);
printf("\n%d %d %d\n",x,y,Maximo(x,y,&maximum_cycle[MAX_NUMERO]));
return (EXIT_SUCCESS);
}
hallarNumeroCiclo(int x,int y,int *maximum_cycle[MAX_NUMERO]){
int k,n;
for (n=0;(x < y) ;--y){
for(k=y;k!=1;){
if ((k % 2) ==0)
{
k/=2;
n+=1;
}
else if ((k%2)==1)
{
k = 3*k+1;
n+=1;
}
if (k==1) {
n+=1;
/*this is the line where the error occurs, the next bracket */
}
}
*maximum_cycle[y-x]=n;
}
}
int Maximo(int x, int y,int *maximum_cycle[MAX_NUMERO]){
int i;
int maximo =0;
for(i=0;(i>(y-x));i++){
if (*maximum_cycle[i]>maximo){
maximo=*maximum_cycle[i];
}
}
return maximo;
}
인 :이 라인
잘못이처럼 보이도록 해야지 왜 그러나
[]
- 연산자는 즉,*
- 연산자 다음 단단한 것 결합? – Bathsheba컴파일러는 심각한 문제가 있으므로이 코드에 대한 주요 경고를 제공해야합니다. 경고를 사용하도록 설정 했습니까? –
다음을 읽어보십시오. http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ 및 http://stackoverflow.com/questions/how-to-ask –