首页 > 解决方案 > C中的for循环问题,初始化中的scanf()

问题描述

我试图重新编写我非常简单的程序(我是初学者,抱歉愚蠢)。我想将 scanf() 放入循环初始化的第一段,我认为一切都会好起来的,但它不像我“预测的”那样工作。程序应该获取和 intiger,然后写入以下数字,直到最后一个数字比第一个数字大 10 倍,但不是这个,而是写出从 1 到大 10 倍的数字。我将不胜感激任何提示和调试。祝你今天过得愉快!

代码:

 #include <stdio.h>
int main()
{
  int x, i;

  printf("Please put intiger:\n");

  for(i = (scanf("%d", &x)); i < x + 10; i++)
    printf("%d\n", i);

  return 0;


}

执行:

请输入:5 1 2 3 4 5 6 7 8 9 10 11 12 13 14

按任意键继续 。. .

标签: cfor-loop

解决方案


scanf返回它已成功扫描的值的数量,而不是您给出的输入值。但你想要的是打印 10 个数字开头x

你需要:

scanf("%d", &x);
for (i = x; i < x + 10; i++) 
    printf("%d\n", i);

阅读文档scanf以了解它返回的内容。还要记住scanf也可能失败。


推荐阅读