while循环(for循环)上的scanf错误,永久扫描
我不熟悉C编程和编写代码来确定m个测试用例的素因子分解。如果我一次只扫描一次,函数本身就可以工作,但当我尝试扫描m次时,它失败得很惨 我不知道为什么scanf()的循环有问题while循环(for循环)上的scanf错误,永久扫描,c,C,我不熟悉C编程和编写代码来确定m个测试用例的素因子分解。如果我一次只扫描一次,函数本身就可以工作,但当我尝试扫描m次时,它失败得很惨 我不知道为什么scanf()的循环有问题 int main(无效){ int n,j=0,m,print=0; int i=2,计数器=0; scanf(“%d”、&m); while(j
int main(无效){
int n,j=0,m,print=0;
int i=2,计数器=0;
scanf(“%d”、&m);
while(j
与其说您的scanf
行“有缺陷”,不如说,您在每次外部while
循环开始时不重置i
的值。因此,在该循环的第一次运行中,i
以值2
开始,但在后续运行中,它将以上一次运行结束后剩余的值开始
要解决这个问题,只需添加行
i=2代码>在scanf(“%d”和&n)之前(或之后)代码>行。在未检查返回值的情况下,绝不能使用scanf
。请尝试格式化字符串%d”
,此外,如果您告诉我们您认为它以哪种方式失败会很有帮助。&
与变量之间从未用空格隔开。如果不检查返回值,则无法正确使用任何用户输入函数。