对一维数组的元素求和
Summing elements of a 1D array
我正在尝试使用如下代码添加线性数组的元素,但我得到的输出等于数组中元素的数量。我似乎找不到原因。
for(i=0;i<n;i++)
{
ar[i] = scanf("%d",&ar[i]);
sum += ar[i];
}
输出:- 数组中元素的数量 (n),这是不正确的。
因此,当我尝试 ar[i] != scanf("%d",&ar[i]);
而不是上面的方法时,它给出了正确的输出。如有任何帮助,我们将不胜感激。
读取的值被读取的数据数覆盖,因为您将 scanf()
的 return 值分配给 ar[i]
。停止赋值并使用该值检查读取是否成功。
for(i=0;i<n;i++)
{
if(scanf("%d",&ar[i]) != 1)
{
/* handle error */
}
sum += ar[i];
}
你的错误在这里:
ar[i] = scanf("%d",&ar[i]);
只需更改为:
scanf("%d",&ar[i]);
来自 scanf 的 return 应该是 1
因此,它将 scanf 之后的 ar[i] 的值更改为 1。因此,总和就是元素的数量。
我正在尝试使用如下代码添加线性数组的元素,但我得到的输出等于数组中元素的数量。我似乎找不到原因。
for(i=0;i<n;i++)
{
ar[i] = scanf("%d",&ar[i]);
sum += ar[i];
}
输出:- 数组中元素的数量 (n),这是不正确的。
因此,当我尝试 ar[i] != scanf("%d",&ar[i]);
而不是上面的方法时,它给出了正确的输出。如有任何帮助,我们将不胜感激。
读取的值被读取的数据数覆盖,因为您将 scanf()
的 return 值分配给 ar[i]
。停止赋值并使用该值检查读取是否成功。
for(i=0;i<n;i++)
{
if(scanf("%d",&ar[i]) != 1)
{
/* handle error */
}
sum += ar[i];
}
你的错误在这里:
ar[i] = scanf("%d",&ar[i]);
只需更改为:
scanf("%d",&ar[i]);
来自 scanf 的 return 应该是 1 因此,它将 scanf 之后的 ar[i] 的值更改为 1。因此,总和就是元素的数量。