分段错误错误来了

时间:2016-08-11 10:18:04

标签: c turbo-c++

#include<stdio.h> 
#include<conio.h>
#include<stdlib.h>

void main() 
{   
  int n;
  void towers(int n,char from, char to,char aux); 
  clrscr();
  printf("\n\t\t PROGRAM FOR TOWERS OF HANOI"); 
  printf("\n\nEnter The Total number of Disks : "); 
  scanf("%d",n);    towers(n,'A','C','B'); 

  getch();
} 
void towers(int n,char from,char to, char aux)
{ 
  if(n==1)
  {     
        printf("\nMove disk 1 from %c peg to %c peg",from,to);  
        return; 
  } 
  towers(n-1,from,aux,to); 
  printf("\n Move disk %d from %c peg to %c peg",n,from,to); 
  towers(n-1,aux,to,from);
}

2 个答案:

答案 0 :(得分:1)

使用

  

的scanf( “%d”,&安培; N);

而不是

  

的scanf( “%d”,N);

因为它需要scanf函数的变量n的地址来存储该值。 所以,该地址是通过&amp; n。

指定的

答案 1 :(得分:0)

scanf("%d",n)替换为scanf("%d",&n),将指针传递给scanf应放置结果的位置。