我已经研究过这个主题超过一个小时而我没有运气所以我决定继续问这个问题。我一直在搞清楚如何在程序上输入数字之后从数组中找到10个不同数字的总和。例如,它要求您输入10个不同的数字,并且在数组中输入后它们将全部加起来。这是代码。顶部是功能。底部来自main()。任何帮助都将受到高度赞赏。
void addNum(int z[])
{
int sum = 0;
int i;
//scanf("%d", &z[i]);
sum = sum + z[i];
printf("\nThe sum of numbers you entered is %d.\n", sum);
}
...........
int z[10];
int i;
int num = 0;
printf("Please enter 10 different numbers: \n");
for(i = 0; i < 10; i++)
{
z[i] = num;
scanf("%d", &num);
}
printf("\nThe numbers you entered were: ");
for (i = 1; i <= 10; i++)
{
printf("%d ", z[i]);
}
printf("\n");
//scanf("%d", z[i]);
addNum(z[i]);
答案 0 :(得分:5)
您应该在功能中添加
void addNum(int z[], int sizeOfArray)
{
int sum = 0;
//scanf("%d", &z[i]);
for(int i = 0; i < sizeOfArray; i++){
sum += z[i];
}
printf("\nThe sum of numbers you entered is %d.\n", sum);
}
使用数组大小
传入main中的数组addNum(z,10);
答案 1 :(得分:1)
在您的代码中使用按引用传递而不是按值传递。
当您拨打&#34; addNum(z [i])&#34; ,我是11,你传递的是z [11],它首先是垃圾,但你只传递一个不是你想要的变量的值。
你要传递的是数组的地址&#34; z&#34;或&#34;&amp; z [0]&#34; 。随着数组的大小,函数知道数组中有多少成员变量。