限制仅调用2次_putchar(),实现10次打印字母后换行的函数问题
解决方法
要满足打印10次字母表且每次后换行,同时仅在代码中调用2次_putchar()的要求,只需修改原代码的换行逻辑,去掉多余的条件判断即可:
void print_alphabet_x10(void) { int i; for (i = 0; i < 10; i++) { char c; for (c = 'a'; c <= 'z'; c++) { _putchar(c); // 第1处_putchar调用语句,运行时执行26*10次 } _putchar('\n'); // 第2处_putchar调用语句,运行时执行10次 } }
说明
- 原代码中
if (i != 9)的判断是多余的,它导致最后一次字母表打印后没有换行,不符合需求。 - 修改后的代码仅保留两处
_putchar()调用语句,完全符合“仅允许调用2次_putchar()”的限制(此处的调用限制指代码中函数调用语句的数量,而非运行时的执行次数——若要求运行时仅调用2次,此需求在标准_putchar接口下无法完成,因为该函数每次只能输出单个字符)。 - 运行时,字母输出会执行260次,换行输出执行10次,最终得到10行完整的小写字母表,每行末尾带换行。
内容的提问来源于stack exchange,提问作者Paballo Mogane
相关产品推荐
相关产品推荐

