输出是地址而不是值

output is address instead of values

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int i,limit,sum=0;
    int a[100];

    setbuf(stdout,NULL);
    printf("enter the limit");
    scanf("%d",&limit);
    printf("enter the values");
    for(i=0;i<limit;i++)
    {
        scanf("%d",&a[limit]);
    }

    for(i=0;i<limit;i++)
    {
        sum=sum+a[i];
    }
    printf("the sum is : %d",sum);
    return 0;
}

输出:

输入限制3
输入值 3
3个
3个
总和是:19265880
实际输出应该是9

for(i=0;i<limit;i++)
{
    scanf("%d",&a[limit]); //replace limit with i
}

您可以看到 scanf 正在读入数组 a[limit] 而不是 a[i]。这是导致问题的原因。