C For循环在迭代器达到最大值之前结束
例如,当我为s输入10时,main()中的循环运行6次,然后求和。我甚至打印了迭代器I来检查值,但它还没有达到10C For循环在迭代器达到最大值之前结束,c,for-loop,C,For Loop,例如,当我为s输入10时,main()中的循环运行6次,然后求和。我甚至打印了迭代器I来检查值,但它还没有达到10 #include <stdio.h> /// define sum function int sum( int n[], int s) { int i, sum_t = 0; for(i=0; i<s; i++) { sum_t = sum_t + n[i]; }
#include <stdio.h>
/// define sum function
int sum( int n[], int s)
{
int i, sum_t = 0;
for(i=0; i<s; i++)
{
sum_t = sum_t + n[i];
}
return sum_t;
}
/// main program
int main()
{
int i, s, n[s];
printf("Enter size of array\n");
scanf("%d", &s);
for(i=0; i<s; i++)
{
printf("Enter number %d\n", i+1);
scanf("%d", &n[i]);
}
printf("%d", sum(n, s));
return 0;
}
#包括
///定义和函数
整数和(整数n[],整数s)
{
int i,和t=0;
对于(i=0;i当您声明n[s]
时,s
的值是多少?哦,我现在明白了。在我使用scanf表示s之后,我必须声明n[s]。您应该将n声明为指针:int*n;在读取s之后,您应该分配n:n=malloc(s*sizeof(int));您确实应该使用scanf()的结果
-如果不这样做,您就不知道转换是否成功。无需在正确的位置(扫描后)malloc.int n[s]即可完成转换