首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的C循环快把我逼疯了

问简单的C循环快把我逼疯了
EN

Stack Overflow用户
提问于 2010-11-24 07:44:20
回答 4查看 137关注 0票数 0

所以我只用过c++编程,但我必须做一个需要使用c的小作业。我遇到的问题是,我需要一个循环来读取由用户的空格分隔的数字(如:1 5 6 7 3 42 5),然后获取这些数字并填充一个数组。

我写的代码是:

代码语言:javascript
复制
int i, input, array[10];

for(i = 0; i < 10; i++){
scanf("%d", &input);
array[i] = input;
}

编辑:新增数组定义。如有任何建议或提示,我们将非常感谢。

EN

回答 4

Stack Overflow用户

发布于 2010-11-24 07:53:56

不管这里出了什么问题,您都应该很快学会永远不要编写不检查任何API调用的返回值的代码。scanf返回一个值,您必须对它所说的内容感兴趣。如果呼叫失败,您的逻辑是不同的,对吗?

也许在这种情况下,它会告诉您哪里出了问题。文档是here格式的。

返回成功转换和分配的字段数;返回值不包括已读取但未分配的字段。返回值为0表示未分配任何字段。

票数 2
EN

Stack Overflow用户

发布于 2010-11-24 07:50:41

这段代码运行良好。

如果你的数字小于10,那么在你开始读取这个数字之前,你必须知道有多少个数字,或者最后一个数字必须是类似于0的东西来终止输出,然后你可以执行while(true)循环,但是对于动态求解,你必须将所有行都读入字符串,然后使用sscanf从这个字符串中读取数字。

票数 0
EN

Stack Overflow用户

发布于 2010-11-24 07:54:18

您需要正确的#include和正确的main。下面的方法对我很有效

代码语言:javascript
复制
#include <stdio.h>
int main(void) {

    /* YOUR CODE begin */
    int i, input, array[10];
    for (i = 0; i < 10; i++) {
        scanf("%d", &input);
        array[i] = input;
    }
    /* end of YOUR CODE */

    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4262205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档