在C中使用数组进行扫描和求和
我试图编写一个简单的程序,提示用户输入N个数字,将它们存储在一个数组中,然后将它们相加 我知道我可以用递归来实现这一点,但我正在努力学习数组是如何工作的 例如: 1(按回车键) 2(按回车键) ... 10(按回车键) 预期产出:55在C中使用数组进行扫描和求和,c,arrays,for-loop,C,Arrays,For Loop,我试图编写一个简单的程序,提示用户输入N个数字,将它们存储在一个数组中,然后将它们相加 我知道我可以用递归来实现这一点,但我正在努力学习数组是如何工作的 例如: 1(按回车键) 2(按回车键) ... 10(按回车键) 预期产出:55 #include <stdio.h> int main (void){ int n; int a[n]; int counter; printf("How many numbers do you want to enter? \n
#include <stdio.h>
int main (void){
int n;
int a[n];
int counter;
printf("How many numbers do you want to enter? \n");
scanf("%d", &n);
printf("OK! now enter your number: \n");
for (int i = 0; i <= n; i++){
scanf("%d", &a[i]);
counter =+ a[i];
}
printf("The answer is: %d\n", counter);
return 0;
}
#包括
内部主(空){
int n;
int a[n];
整数计数器;
printf(“您要输入多少数字?\n”);
scanf(“%d”和“&n”);
printf(“好!现在输入您的号码:\n”);
对于(int i=0;i您正在使用可变长度数组。在运行时必须知道n
的值。放置声明
int a[n];
在为n
获取输入后,即在scanf(“%d”,&n);
之后,在使用它之前将计数器初始化为零,否则您将获得垃圾值(由于未定义的行为)。
还可以从使用可变长度数组的i更改的for
循环条件。在运行时必须知道n
的值。放置声明
int a[n];
在为n
获取输入后,即在scanf(“%d”,&n);
之后,在使用它之前将计数器初始化为零,否则您将获得垃圾值(由于未定义的行为)。
同时,在此行之后,将循环条件从i更改为:
int n;
你认为n
的值是多少
现在转到下一行:
int a[n];
这个阵列有多大?
您能正确访问它吗?在这一行之后:
int n;
你认为n
的值是多少
现在转到下一行:
int a[n];
这个阵列有多大?
您能正确访问它吗?首先,您不能在不知道其大小的情况下创建静态数组。您首先需要向用户请求“n”变量,然后声明您的数组
在开始计数之前,您还需要显式地将计数器变量初始化为零。在C中,当您声明变量时,变量不会默认为0
运算符“=+”不存在,请将其更改为“+=”
最后但并非最不重要的一点是,循环中的限制有点偏离,您需要11个值;)
(我编辑了这篇文章,我只要求9个值是错误的。我倾向于混淆这类东西)
#包括
内部主(空){
int n;
int计数器=0;
printf(“您要输入多少数字?\n”);
scanf(“%d”和“&n”);
int a[n];
printf(“好!现在输入您的号码:\n”);
对于(int i=0;i
首先,如果不知道静态数组的大小,就不能创建静态数组。首先需要向用户请求“n”变量,然后声明数组
在开始计数之前,您还需要显式地将计数器变量初始化为零。在C中,当您声明变量时,变量不会默认为0
运算符“=+”不存在,请将其更改为“+=”
最后但并非最不重要的一点是,循环中的限制有点偏离,您需要11个值;)
(我编辑了这篇文章,我只要求9个值是错误的。我倾向于混淆这类东西)
#包括
内部主(空){
int n;
int计数器=0;
printf(“您要输入多少数字?\n”);
scanf(“%d”和“&n”);
int a[n];
printf(“好!现在输入您的号码:\n”);
对于(int i=0;i
如果n依赖于用户输入,那么在编译时如何知道n?@ValekHalfHeart;这是一个输入错误。这并不重要;第一个printf应该在触发此错误之前运行。此外,for循环中的条件应该是i
,而不是i如果n依赖于用户输入,那么在编译时如何知道n?@ValekHalfHeart;那是一个输入错误。这并不重要;第一个printf应该在这个错误被触发之前运行。此外,for循环中的条件应该是i,而不是i答案,以及ii,=+
+=
请压缩并改进代码上的缩进。答案和ii
,=+
-->+=
请压缩并改进代码的缩进。@abelenky是的,但我认为OP想要累加值,而不是不求和地将每个元素赋给数组。@abelenky仍然是有效的C语法。感谢您指出out=)@userXxXxXx不客气,告诉我它是否适合您.@abelenky是的,但我认为OP想要累加值,而不是不求和地将每个元素赋给数组。@abelenky仍然是有效的C语法。谢谢你指出out=)@userXxXxXx不客气,告诉我它是否适合你。