C++程序跳过以9结尾的数字问题求助
问题分析与解决:C++程序缺失以9结尾的数字
问题根源
你的代码逻辑错误导致无法输出以9结尾的数字:当dig1递增到'9'时,代码立刻将其重置为'0'并让dig2进位,随后输出的是重置后的dig1(即'0'),因此永远不会输出dig1为'9'的组合(比如09、19等)。
修正方案
将判断条件从dig1 == '9'改为dig1 > '9'。因为字符'9'的ASCII码是57,递增后会变成ASCII码58(对应字符':'),此时才需要执行进位操作,这样就能保留dig1为'9'的输出。
修改后的代码
#include <iostream> using namespace std; int main() { int i; char dig1 = '0', dig2 = '0'; cout << dig2 << dig1 << endl; for(i = 0; i < 90; i++) { dig1++; if(dig1 > '9') // 修正判断条件 { dig1 = '0'; dig2++; } cout << dig2 << dig1 << endl; } return 0; }
效果验证
修改后程序会依次输出00、01...09、10...89、90,所有以9结尾的数字都能正常显示。
内容的提问来源于stack exchange,提问作者M3lon
相关产品推荐
相关产品推荐

