想实现的功能是:
输入一个整数n,再输入n个数字再它的同一行,这时存储后面这n个数字的和。重复这个操作,直到输入的n等于0时,输出每一次的和。
例如:
4 1 2 3 4
5 1 2 3 4 5
0
10
15
#include<iostream>
using namespace std;
void calculate(int n,int*arr)
{
int num = 0;
int* larr2 = new int[num];
while(n != 0)
{
for (int i = 0; i < n; i++)
{
cin >> arr[i];
larr2[num] = larr2[num] + arr[i];//这个数组出了乱码
}
cin >> n;
num++;
for (int i = 0; n == 0 && i < num; i++)
{
cout << larr2[i] << endl;
}
}
}
int main()
{
int n = 0;
cin >> n;
int* larr = new int[n];
calculate(n, larr);
system("pause");
return 0;
}
没报错,但输出的是乱码
修改如下,供参考对照:
#include<iostream>
using namespace std;
void calculate(int n, int *arr)
{
int num = 0;
for (int i = 0; i < n; i++)
{
cin >> num;
*arr += num;
}
}
int main()
{
int n = 0,k=0;
int larr[128] = {0};
cin >> n;
while (n != 0) {
calculate(n, &larr[k++]);
cin >> n;
}
for (int i = 0; i < k; i++)
{
cout << larr[i] << endl;
}
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int* larr = new int[100]();
int n = 0;
cin >> n;
int b=0;
while(n!=0){
int* a = new int[n];
int acc = 0;
for(int i = 0 ;i<n ;i++){
cin >> a[i];
acc=acc+a[i];
}
delete []a;
larr[b]=acc;
b++;
cin>>n;
}
for( int i=0;i<b;i++ ){
cout << larr[i] <<endl;
}
delete []larr;
system("pause");
return 0;
}