C 如何操作数组?
我有一个数组C 如何操作数组?,c,arrays,C,Arrays,我有一个数组 arr[]={7,5,-8,3,4}; 我必须将同一数组更新为 arr[]={7,12,4,7,11}; 我的代码: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int sumArr(int *arr, int size); void main() { int arr[] = { 7,5,-8,3,4 }; int i, size,
arr[]={7,5,-8,3,4};
我必须将同一数组更新为
arr[]={7,12,4,7,11};
我的代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int sumArr(int *arr, int size);
void main()
{
int arr[] = { 7,5,-8,3,4 };
int i, size, res = 0;
printf("Enter Size Of The Array:");
scanf("%d", &size);
res = sumArr(arr, size);
for (i = 0; i < size; i++)
{
printf("%d\n", res);
}
}
int sumArr(int *arr, int size)
{
int i;
for (i = 0; i < size; i++)
{
arr[i+1]+= arr[i];
printf(" %d \n", arr[i + 1]);
}
return arr[i+1];
}
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
int-sumArr(int*arr,int-size);
void main()
{
int-arr[]={7,5,-8,3,4};
int i,大小,res=0;
printf(“输入数组的大小:”);
scanf(“%d”,大小(&S);
res=sumArr(arr,尺寸);
对于(i=0;i
输出应为:7,12,4,7,11
但在我的代码中,输出是:12,4,7,11,-8589934495819650258196502581965025819650258196502
有什么提示吗?
我可以为输入和输出数组使用辅助函数,这会有帮助吗?您的代码中有几个错误:
- 当
到达数组末尾时,需要停止求和循环i+1
- 你的代码知道大小;无需从最终用户处读取
- 您需要打印
的值一次,而不是循环打印res
<> LI>应考虑将程序打印部分移到<代码>主< <代码> > <代码> > SUMARRY <
int sumArr(int *arr, int size) {
// Stop when i+1 reaches size; no printing
for (int i = 0; i+1 < size; i++) {
arr[i+1]+= arr[i];
}
return arr[size-1];
}
当您已经知道阵列的大小时,询问它是没有意义的。它有5个元素,请务必键入“5”而不是“10”。不要问,或者realloc()。你是对的。这是为动态阵列做准备。(如果有道理的话)。我确实按了5…
arr[I+1]
在循环的最后一次迭代中以及在返回语句中超出了范围。我非常感谢您的帮助!但是为什么要返回arr[size-1]?@AndrewM以避免将i
的值“出血”到循环范围之外。
printf("sum=%d\n", res);
for (int i = 0; i < size; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}