所以我只用过c++编程,但我必须做一个需要使用c的小作业。我遇到的问题是,我需要一个循环来读取由用户的空格分隔的数字(如:1 5 6 7 3 42 5),然后获取这些数字并填充一个数组。
我写的代码是:
int i, input, array[10];
for(i = 0; i < 10; i++){
scanf("%d", &input);
array[i] = input;
}编辑:新增数组定义。如有任何建议或提示,我们将非常感谢。
发布于 2010-11-24 07:53:56
不管这里出了什么问题,您都应该很快学会永远不要编写不检查任何API调用的返回值的代码。scanf返回一个值,您必须对它所说的内容感兴趣。如果呼叫失败,您的逻辑是不同的,对吗?
也许在这种情况下,它会告诉您哪里出了问题。文档是here格式的。
返回成功转换和分配的字段数;返回值不包括已读取但未分配的字段。返回值为0表示未分配任何字段。
发布于 2010-11-24 07:50:41
这段代码运行良好。
如果你的数字小于10,那么在你开始读取这个数字之前,你必须知道有多少个数字,或者最后一个数字必须是类似于0的东西来终止输出,然后你可以执行while(true)循环,但是对于动态求解,你必须将所有行都读入字符串,然后使用sscanf从这个字符串中读取数字。
发布于 2010-11-24 07:54:18
您需要正确的#include和正确的main。下面的方法对我很有效
#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;
}https://stackoverflow.com/questions/4262205
复制相似问题