代码如下:
#include "stdafx.h"
#include
#include
#include
#include
void fi(int a,int b,int tf,int tl){ //函数用于在两个线程
代码如下:
#include "stdafx.h"
#include
#include
#include
#include
void fi(int a,int b,int tf,int tl){ //函数用于在两个线程之间切换
it:
while(kbhit()==0){ //第一个线程,只用来对a进行倒计时
do{
tf=time(NULL);} //初始化timefrist
while(0);
while(1){ //无限循环,直到一秒过后
tl=time(NULL); //初始化timelast
if(tl-tf==1){ //如果时间相差1
system("cls"); //清屏
printf("%d
",a); //输出
a--; //减一
break;//退出第二循环,继续第一个线程循环
};
};
};
getch();//清除缓存
while(kbhit()==0){ //第二个线程,用来对ab两个线程进行倒计时
do{
tf=time(NULL);}
while(0);
while(1){
tl=time(NULL);
if(tl-tf==1){
system("cls");
printf("%d %d
",a,b);
a--;
b--;
break;
};
};
};
goto it; //当输入后返回第一线程
};
main(int argc, char* argv[]) //主函数
{
int a=10,b=8,tf=0,tl=0; //初始化数据
fi(a,b,tf,tl); //动用循环函数
return 0;
}
代码用于当有输入时,将第一线程转入第二线程进行倒计时,再次输入则将第二线程转回第一线程,问题在于,当第一线程转到第二线程后,第二线程却转不回第一线程了,求解=v=
展开
全部