我是C编程的初学者。我尝试制作一个用户使用其大小的数组代码并输入一些变量来进行求和。
在执行期间,它在代码中间停止的问题!!
#include <stdio.h>
#include <string.h>
int main (void)
{
int size = 0; // handle the array input[] size.
int input[size];
int total = 0;
int n = 0; // count the element want to sum.
printf("how many variable you want to sum: ");
scanf("%i", &size);
int i;
for (i = 0; i < n; i++)
{
printf("enter integer %d", i+1);
scanf("%d", &input[i]);
}
int j;
for (j = 0; j < n; j++)
{
total += input[i];
}
printf("Result is: %d", total);
return 0;
}
我在终端中收到的错误:
你想要总和多少变量:5
结果是:0
(程序退出代码:12)
按返回继续
我遇到了什么问题?
答案 0 :(得分:2)
放置
int input[size];
阅读size
之后(那应该是如何声明可变长度数组)
同时n
不要0
。我认为应该是
n = size;
答案 1 :(得分:0)
您的循环由n
控制。您在程序开头将n
设置为0
,但从未更改过
int n = 0; // count the element want to sum.
for (i = 0; i < n; i++) // <== n is 0
for (j = 0; j < n; j++) // <== n is 0
答案 2 :(得分:0)
int input[size];
- &GT;在运行时无法获得数组的大小。如果你想这样做,你可以使用malloc()。
以下代码,没有malloc(),可能有效。
#include <stdio.h>
#include <string.h>
int main (void)
{
int input;
int total = 0;
int n = 0; // count the element want to sum.
int i;
printf("how many variable you want to sum: ");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
printf("enter integer %d", i);
scanf("%i", &input);
total += input;
}
printf("Result is: %d", total);
return 0;
}