如何用C语言打印指定奇数数字图案?
如何用C语言打印指定奇数图案并修复代码问题
你的代码核心逻辑错误,导致无法输出目标图案。目标要求每行打印连续递增的奇数序列,第i行需包含前i个奇数(1、3、5…直到第i个奇数),但你当前的逻辑是遍历j从1到i,仅打印j本身为奇数的数字,这和需求不符。
修复后的代码
#include <stdio.h> #include <stdlib.h> int main(void) { int i, j, limit; printf("请输入行数limit: "); fflush(stdout); scanf("%d", &limit); // 控制打印的行数 for(i = 1; i <= limit; i++){ // 每行打印前i个连续奇数 for(j = 1; j <= i; j++){ // 计算第j个奇数:2*j - 1 printf("%d", 2 * j - 1); } printf("\n"); } return EXIT_SUCCESS; }
关键修改说明
- 移除了多余的
if(j%2==1)判断:我们不需要判断j的奇偶,而是直接通过公式2*j-1生成第j个奇数(j=1对应1,j=2对应3,以此类推) - 调整了提示语,让输入引导更清晰
当输入limit=5时,程序输出如下:
1 13 135 1357 13579
内容的提问来源于stack exchange,提问作者faiz
相关产品推荐
相关产品推荐

