如何用for循环重复输出1-9序列并得到指定格式结果?
问题分析
你的代码核心问题是:当i是两位数时,printf("%d",i)会输出两个字符(比如i=11时输出"11"),但你期望每个循环只输出单个数字(对应i的个位),这就导致输出长度超标,出现了多余的字符。
修正方案
直接取i的个位数字输出即可,不管i是不是10的倍数,i%10都能得到对应的个位:
for (int i = 1; i <= 35; i++) { printf("%d", i % 10); }
如果你想保留原来的if-else结构,只需要修改else分支的输出逻辑:
for (int i = 1; i <= 35; i++) { if (i % 10 == 0) { printf("0"); } else { printf("%d", i % 10); // 这里改为取个位数字 } }
输出验证
运行修正后的代码,会得到你期望的结果:
12345678901234567890123456789012345
内容的提问来源于stack exchange,提问作者Rex Hunter
相关产品推荐
相关产品推荐

