C语言如何停止运行?

编了一个程序,其中一个函数是输出一步,Sleep两秒,循环了N次。当这个函数开始运行了就要全部运行完才能跳出。如何解决这个问题?有没有类似 ” 如果检测到有输入就跳出函数 ” 之类的语句?
其实是个普通的汉诺塔。。。每输出一步停止两秒,但直到走完所有2^n-1步才会停止。如果把这个程序做成了函数,能不能 “如果有输入就跳出函数”, 回到主函数,不是中途exit之类的。。。

#include <stdio.h>
#include <windows.h>
void hanoi(int n,int a,int b,int c);
int main(){
int n;
scanf("%d",&n);
hanoi(n,1,2,3);
return 0;
}
void hanoi(int n,int a,int b,int c){
if (n==1){
printf("%d %d\n",a,c);
Sleep(2000);
}

else{
hanoi(n-1,a,c,b);
printf("%d %d\n",a,c);
Sleep(2000);
hanoi(n-1,b,a,c);
}

一般都是用Ctr+c来停止。如果是程序内部的话,可以在main函数里面使用return,或者用exit()都可以让程序停止运行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-01
可以贴点代码上来看下吗,避免理解错了你的意思。

一、如果你是想有输入,就回到主函数,不再回到本来的递归函数(即不再继续运算),就直接return。(会不断返回上一层,即将压栈的递归函数出栈)。

二、如果你是想实现这样的功能:输入,就暂停计算,可以再输入,继续执行运算。可以使用
system("pause");这样的语句。来自:求助得到的回答
第1个回答  2013-02-01
有啊,Ctrl-C就能让程序退出
第2个回答  2013-02-01
给你个示例程序你看看:
#include <windows.h>
main()
{
int i = 0;

while(1)
{
printf("%d\n", i);
i++;
Sleep(50);

// 碰到有按键就退出
if (kbhit())
{
break;
}
}

system("pause");
}本回答被提问者采纳
第3个回答  2013-02-01
用break语句或者是用exit(0)
相似回答