写了个按左键全局变量减1,按右键全局变量增加1,按下ENTER键退出的程序,最终在屏幕上显示的值有问题,帮忙分析下。下面的程序是流程图转过来的,能正常执行。但结果不对。谢谢!
![](http://imgsrc.baidu.com/forum/w%3D580/sign=b8e6770613d8bc3ec60806c2b28ba6c8/01bd46c69f3df8dc05674dadc711728b4710282c.jpg)
#include "ASEIO.h"
int btn_1=0;
int btn_2=0;
int btn_3=0;
int gi_1=0;
void main()
{
/* 显示当前变量 gi */
btn_1 = Get_Button();
btn_2 = Get_BtnLeft();
btn_3 = Get_BtnRight();
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
while(1)
{
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
btn_2 = Get_BtnLeft();
if(btn_2 == 1)
{
gi_1 = gi_1 - 0;
}
else
{
btn_3 = Get_BtnRight();
if(btn_3 == 1)
{
gi_1 = gi_1 + 1;
}
else
{
btn_1 = Get_Button();
if(btn_1 == 1)
{
break;
}
}
}
}
BEEP(523.200012,1.000000);
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
}
![](http://imgsrc.baidu.com/forum/w%3D580/sign=b8e6770613d8bc3ec60806c2b28ba6c8/01bd46c69f3df8dc05674dadc711728b4710282c.jpg)
#include "ASEIO.h"
int btn_1=0;
int btn_2=0;
int btn_3=0;
int gi_1=0;
void main()
{
/* 显示当前变量 gi */
btn_1 = Get_Button();
btn_2 = Get_BtnLeft();
btn_3 = Get_BtnRight();
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
while(1)
{
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
btn_2 = Get_BtnLeft();
if(btn_2 == 1)
{
gi_1 = gi_1 - 0;
}
else
{
btn_3 = Get_BtnRight();
if(btn_3 == 1)
{
gi_1 = gi_1 + 1;
}
else
{
btn_1 = Get_Button();
if(btn_1 == 1)
{
break;
}
}
}
}
BEEP(523.200012,1.000000);
printf( "btn_1=%d\nbtn_2=%d\nbtn_3=%d\ngi_1=%d\n\n\n\n",btn_1,btn_2,btn_3,gi_1 );
}