首页 > 解决方案 > 在创建 for 循环时使用 if

问题描述

我从用户那里得到一个数字,用 C 语言打印一个模式。如果数字是奇数,则没有问题;但是,如果数字是偶数,则代码会多打印 1 个块!for所以,我想检查我的循环中的数字是否是偶数。

我尝试了这段代码,但没有奏效:

for (i = 1; i <= numb + 2; i++) {

    if (numb% 2 == 0) {
        numb+= 1;
    }

    for (j = 0; (numb % 2 == 0) ? (j < numb) : (j < numb+ 1); j++) {

        if (i % 2 == 0) {
            printf("* %d * ", j);       
        }
        else {
            printf("***** ");
        }

    }
    printf("\n");
}

标签: c

解决方案


问题是for循环中第二条语句(条件“测试”)的语法。您需要重新排列代码,因此这是一条语句

for (j = 0; j < ( (numb % 2 == 0) ? numb : numb + 1 ); j++) {
    ...
}

推荐阅读