C语言实现打印指定数字因数,输入后无输出问题求助
问题根因
你代码的核心问题出在scanf的格式字符串上:
scanf("%d ", &n);里%d后面多了一个多余的空格。这个空格属于格式匹配符,会指示scanf持续读取并丢弃所有空白字符(空格、换行、制表符等),直到遇到第一个非空白字符才会停止读取返回。所以你输入数字按回车后,程序还在等待你输入非空白内容,看起来就像没有响应。
修复方案
- 首先删掉
scanf格式字符串里%d后的多余空格,改成scanf("%d", &n); - 建议在打印因数的时候加空格分隔,避免所有因数连在一起看不清,可把打印语句改成
printf("%d ", i); - 如果你的编译器不支持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
相关产品推荐
相关产品推荐

