如何修改给定C语言代码实现指定范围的逐行计数输出?
问题解答:实现逐行输出两个整数间的所有数
现有代码的逻辑和你要实现的功能完全不匹配,直接修改现有代码和重写的工作量差不多,不过可以基于现有代码的框架调整核心逻辑来实现需求。
原代码的问题点:
scanf("%d""%d", &n, &m)写法虽然语法合法,但不够直观,建议写成"%d %d"- 原for循环是将
n赋值为m后不断除以10直到0,且是空循环,和需求无关 count变量从未被正确更新,最终输出的永远是0
修改后的代码(基础版)
#include<stdio.h> int main(){ int start, end; // 读取输入的两个整数,分别作为起始值和结束值 scanf("%d %d", &start, &end); // 从起始值循环到结束值,逐行打印每个整数 for(int i = start; i <= end; i++){ printf("%d\n", i); } return 0; }
进阶版(支持起始值大于结束值的情况)
如果需要处理输入的第一个数大于第二个数的场景(比如输入5 1时输出5到1的数),可以添加判断调整循环方向:
#include<stdio.h> int main(){ int start, end; scanf("%d %d", &start, &end); if(start <= end){ for(int i = start; i <= end; i++){ printf("%d\n", i); } } else { for(int i = start; i >= end; i--){ printf("%d\n", i); } } return 0; }
内容的提问来源于stack exchange,提问作者Arif Bagus
相关产品推荐
相关产品推荐

