代码
int i = 0, j = 0, m = 0, N, x;//x-中间存储值
string str;
vector<int> arr;
getline(cin, str);
stringstream ss(str);
while (ss >> x)
arr.push_back(x);
//for (; i < arr.size(); i++)
//{
// cout << arr[i];
//}
N = arr[0];
int** a = new int* [5];
for (i = 0; i < 5; i++)
{
a[i] = new int[N + 1];//五个数组,且首位存放结果,所以N+1,并都赋值0
a[i][0] = 0;
}
//第一个数组
for (i = 1, j = 1; j < arr.size(); j++)
{
if (((arr[j] % 5) == 0) && ((arr[j] % 2) == 0))
{
a[0][i] = arr[j];
++i;
}
}
for (j = 1; j < i; j++)
{
//cout << a[0][j];
a[0][0] += a[0][j];
}
//cout << a[0][0] << endl;
if (i == 1)
cout << 'N' << ' ';
else
cout << a[0][0] << ' ';
//第二个
for (i = 1, j = 1; j < arr.size(); j++)
{
if ((arr[j] % 5) == 1)
{
a[1][i] = arr[j];
++i;
}
}
if (i == 1)
cout << 'N' << ' ';
else
{
for (j = 1, m = 1; j < i; j++)
{
a[1][0] += a[1][j] * m;
m *= -1;
}
//cout << a[1][0] << endl;
cout << a[1][0] << ' ';
}
//第三个
for (i = 1, j = 1; j < arr.size(); j++)
{
if ((arr[j] % 5) == 2)
{
a[2][i] = arr[j];
++i;
}
}
//cout << i - 1 << endl;
if (i == 1)
cout << 'N' << ' ';
else
cout << i - 1 << ' ';
//第四个
for (i = 1, j = 1; j < arr.size(); j++)
{
if ((arr[j] % 5) == 3)
{
a[3][i] = arr[j];
++i;
}
}
if (i == 1)
cout << 'N' << ' ';
else
{
for (j = 1; j < i; j++)
{
a[3][0] += a[3][j];
}
//cout << a[3][0];
//float n = (float)a[3][0] / ((float)i - 1.0)
float n = a[3][0] / (i - 1.0);
cout << fixed << setprecision(1) << n << ' ';//fixd即代表小数点后有效位数,不加setprecision就是整体有效位数
cout.unsetf(ios::fixed);//关闭fixed
}
//第五个
for (i = 1, j = 1; j < arr.size(); j++)
{
if ((arr[j] % 5) == 4)
{
a[4][i] = arr[j];
++i;
}
}
if (i == 1)
cout << 'N';
else
{
for (j = 2, m = a[4][1]; j < i; j++)//先m赋值为首位,则j从2开始
{
if (a[4][j] > m)
m = a[4][j];
}
cout << m;
}
return;
记录
按照要求逐渐累加功能,虽然很不简单而且冗长,但给以后看的话至少能很快回忆起思路。