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

C语言实现打印指定数字因数,输入后无输出问题求助

问题根因

你代码的核心问题出在scanf的格式字符串上:

  • scanf("%d ", &n);里%d后面多了一个多余的空格。这个空格属于格式匹配符,会指示scanf持续读取并丢弃所有空白字符(空格、换行、制表符等),直到遇到第一个非空白字符才会停止读取返回。所以你输入数字按回车后,程序还在等待你输入非空白内容,看起来就像没有响应。

修复方案

  1. 首先删掉scanf格式字符串里%d后的多余空格,改成scanf("%d", &n);
  2. 建议在打印因数的时候加空格分隔,避免所有因数连在一起看不清,可把打印语句改成printf("%d ", i);
  3. 如果你的编译器不支持C99及以上标准,会报错for循环内定义变量i的语法,只需要把int i的定义移到main函数开头即可。

修复后的完整代码

#include <stdio.h>
int main() {
    int n;
    printf("enter the number ");
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) {
        if(n % i == 0) {
            printf("%d ", i);
        }
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者Vaibhav Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:06:02