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

Void函数无输出问题求助:编写打印函数却无任何输出

问题分析与修复方案

嘿,我一眼就瞅出你代码的问题啦!程序没输出的核心原因是触发了除以零的未定义行为!

看你Print函数里的循环逻辑:

for (int i = 0; i <= n; i++){
    if (n%i == 0){
        cout << i << ' ';
    }
}

当循环第一次执行时,i的值是0,这时候n%i本质上是做除法运算,而除数为0在C++里是绝对不允许的——程序会直接崩溃或者终止运行,根本走不到后面的输出步骤,自然就看不到任何内容了。

简单修复方法

只需要把循环的起始值从0改成1就行,毕竟找一个数的因数时,我们不会考虑0(而且0也不能作为除数):

#include <iostream>
using namespace std;
void Print(int n){
    for (int i = 1; i <= n; i++){  // 把i的初始值从0改为1
        if (n%i == 0){
            cout << i << ' ';
        }
    }
    cout << endl;
}
int main(){
    int x;
    cin >> x;
    Print(x);
    return 0;
}

额外提个小优化:如果用户输入的x是负数,当前代码也不会输出任何有效因数,你可以考虑在函数开头先把n转为绝对值,或者在main里提示用户输入正整数,不过这是可选的优化方向啦。

内容的提问来源于stack exchange,提问作者Mohammad Alshareef

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:52:37