输出是地址而不是值
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]
。这是导致问题的原因。
#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]
。这是导致问题的原因。