C语言按钮计数程序问题:重复执行等式失效求助
问题分析与解决
你的问题核心很明确——变量a的值从未被更新过。
初始时a=0,每次按下A键你计算c=a+b,也就是0+1=1,但计算完成后a始终保持初始的0不变,所以下次按下按键时还是0+1,结果自然永远是1。
要实现累加计数,只需要在每次按下A键后,把累加后的结果存回a中,让它记住当前的总数。这里有两种简单的修改方式:
方式一:直接更新a
把计算和更新合并,直接对a执行累加操作:
if( buttonsDown & WPAD_BUTTON_A ) { a += b; // 等价于 a = a + b,直接更新a的当前值 printf(" %d \n", a); }
方式二:先计算再赋值给a
如果想保留c变量,可以在计算完成后将c的值赋值给a:
if( buttonsDown & WPAD_BUTTON_A ) { c = a + b; a = c; // 将当前累加结果存入a,供下次累加使用 printf(" %d \n", c); }
修改后,每次按下A键a都会基于之前的总数加1,输出就会依次显示1、2、3…完全符合你的预期。
内容的提问来源于stack exchange,提问作者SuperShell
相关产品推荐
相关产品推荐

