所以我有一个类似{1, 4, 2, 3, 5, 3, 7}
的数组,我必须创建一个新数组,其中包含每个连续3个元素的总和,如{7, 9, 10, 11, 15}
。
到目前为止,我到了这里,我不知道我做错了什么。
#include <iostream>
#include <conio.h>
using namespace std;
int a[] = {1, 1, 2, 3, 5, 3, 7};
int lung = sizeof(a)/sizeof(a[0]);
int *l = new int[10];
int calc(int *a, int m)
{
int sum = 0;
int stmax = (lung - m) - 1;
for(int st=0;st <= stmax; st++)
{
for(int i = 0; i < m; i++)
{
sum = sum + a[st+i];
}
l[st] = sum;
}
return 0;
}
void main()
{
int a[] = {1, 1, 2, 3, 5, 3, 7};
cout << calc(a, 3)<< endl;
for (int i = 0; i < lung; i++)
{
cout << l[i] << " | ";
}
_getch();
}
答案 0 :(得分:0)
每次迭代后你必须设置sum=0;
for(int st=0;st <= stmax; st++)
{
sum=0;
for(int i = 0; i < m; i++)
{
sum = sum + a[st+i];
}
l[st] = sum;
}
并且您还必须声明int stmax = (lung - m); //ommit -1
并在main
函数中打印数组直到stmax
for (int i = 0; i <= stmax; i++)
{
cout << l[i] << " | ";
}
答案 1 :(得分:0)
我会这样做:
{{1}}