1.分别求整数数组里面的奇数与偶数之和
问题描述:从标准输入里面接收一个字符串,整数之间用逗号(“,”)隔开,如2,3,5,7,9,10,打印最终结果,并且用逗号隔开(另外还有一些限制对问题影响不大)
示例输入与输出:
输入:2,3,5,8,9
输出:17,10
解题思路,从获取到的字符串里面解析出每个整数,再完成奇数与偶数之和的计算
C++ 代码实现
#include <iostream>
#include <string>
#include <stack>
using namespace std;
//为了使用方便,都用全局变量
int arr[1000];
int len = 0;
int oddSum = 0;
int evenSum = 0;
stack<char> stackNum;
void getNumbers()
{
string str;
int l;
cin>>str;
l = str.length();
for (int i = 0; i < l; i++)
{
if ((str.at(i) >= '0')&&(str.at(i) <= '9'))
{
stackNum.push((str.at(i) - '0'));
}
else if (str.at(i) == ',')
{
int num = 0;
int radix = 1;
int size = stackNum.size();
for (int j = 0; j < size; j++)
{
num += (stackNum.top()*radix);
stackNum.pop();
radix *= 10;
}
arr[len++] = num;
}
}
if (!stackNum.empty())
{
int num = 0;
int radix = 1;
int size = stackNum.size();
for (int j = 0; j < size; j++)
{
num += (stackNum.top()*radix);
stackNum.pop();
radix *= 10;
}
arr[len++] = num;
}
}
void getSum()
{
for (int i = 0; i < len; i++)
{
if (arr[i]%2 == 0)
{
evenSum += arr[i];
}
else
{
oddSum += arr[i];
}
}
}
void main()
{
getNumbers();
getSum();
cout<<oddSum<<","<<evenSum;
}