c - 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
按任意键继续 。. .
解决方案
scanf
返回它已成功扫描的值的数量,而不是您给出的输入值。但你想要的是打印 10 个数字开头x
。
你需要:
scanf("%d", &x);
for (i = x; i < x + 10; i++)
printf("%d\n", i);
阅读文档scanf
以了解它返回的内容。还要记住scanf
也可能失败。
推荐阅读
- python - 如何将特定的熊猫列与熊猫中匹配的字典键/值对相乘
- node.js - 看不到多次调用 res 导致错误的位置:在将标头发送到客户端后无法设置标头
- python - Flask.session cookie 被标记为第 3 方?
- r - 未将行添加到R中的数据框
- powershell - 需要为多台服务器重启多个应用程序池
- reactjs - React Native Material UI KeyboardDatePicker 设置光标位置
- javascript - 如何使用 JS 中的 window.history.pushState 方法从历史记录中返回以前的内容?
- javascript - 按键对对象项的数组进行分组。如何处理任何深度的后代?
- kotlin - 如何从回调中调用挂起函数?
- python - Gratient 模块如何在同一行打印文本