You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C语言for循环实现仅接受奇数的输入验证?

修正奇数输入验证的C代码

原代码存在的问题

  • For循环语法无效:你的for(num; num % 2 == 0; num)写法里,初始化和更新部分仅写了变量名,没有执行任何实际操作。For循环的三个字段分别是初始化语句、循环条件、循环后更新语句,这里前和后两个字段都没有起到作用。
  • printf参数缺失:printf("%d is even. TRY AGAIN!: ")中的%d需要对应一个整数参数,不填会导致程序行为异常。

修正后的For循环版本代码

#include <stdio.h>
int main()
{
    int num;
    printf("Enter odd value for n: ");
    scanf("%d", &num);

    // 初始化和更新字段留空,仅保留循环条件
    for( ; num % 2 == 0; )
    {
        printf("%d is even. TRY AGAIN!: ", num); // 补充%d对应的num参数
        scanf("%d", &num);
    }

    // 输入奇数后执行后续逻辑示例
    printf("Valid odd number: %d\n", num);
    return 0;
}

代码说明

  • For循环的三个字段都可以为空:这里因为已经提前读取了num,所以初始化字段留空;循环条件判断num是否为偶数,是则继续循环;更新字段留空,因为每次循环内的scanf已经更新了num的值。
  • 修复了printf的参数问题,确保能正确输出当前输入的偶数。

更直观的While循环版本(可选)

其实这种持续验证输入的场景,用while循环可读性更高:

#include <stdio.h>
int main()
{
    int num;
    printf("Enter odd value for n: ");
    scanf("%d", &num);

    while(num % 2 == 0)
    {
        printf("%d is even. TRY AGAIN!: ", num);
        scanf("%d", &num);
    }

    printf("Valid odd number: %d\n", num);
    return 0;
}

内容的提问来源于stack exchange,提问作者Habib Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:35:30