You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:10:04