我坚持创建一个程序:
例如: - 用户输入:[7,5,-8,3,4] - 输出:[7,12,4,7,11]
我的代码尝试这样做,但没有达到正确的结果,我认为我的数组算法有问题。有人可以帮忙吗?
前4位数字的输出遍布地图:12,-3,-5 ....
int main () {
int *arr;
int i, n;
printf("Please enter the size of the array : ");
scanf("%d", &n);
arr = (int*)malloc(n*sizeof(int));
for (i=0; i<n; i++)
{
printf("Please enter array values: ");
scanf("%d", &arr[i]);
}
printf("The alternated array is: \n");
for (i=0; i<n; i++)
printf("%d ", arr[i]+arr[i+1]);
}
答案 0 :(得分:1)
现在您需要做的就是以下
int *arr2 = malloc( n * sizeof( int ) );
int sum = 0;
for ( i = 0; i < n; i++ )
{
sum += arr[i];
arr2[i] = sum;
}
依此类推。:)
在填充第二个数组后,您可以按照与第一个数组相同的方式输出它。
至于这个循环
for (i=0; i<n; i++)
printf("%d ", arr[i]+arr[i+1]);
然后它没有意义
(
printf("The new array is: \n");
新数组在哪里?:))
此外还尝试访问数组之外的内存。
在程序结束时写
free( arr );
free( arr2 );
考虑到您需要将程序拆分为函数。