青蛙(frog)杯第一届棒球比赛开赛啦。 你现在是一名记分员,输入一个字符串数组(比赛记录情况),按如下规则计分: 1. 如果该字符串是数字:代表当轮比赛的得分情况。 2. 如果该字符串是“+”:


#include "stdafx.h"
#include
#include
#include
using namespace std;
int frogPoints(char *str,int length)

 stack stk;
 int sumScore=0;//总分
 int temp;//暂时储存数字型字符的整型变量
 for(int i=0;i {
  
  //if (str[i] == 0 || str[i] == 1 || str[i] == 2 || str[i] == 3 || str[i] == 4 || str[i] == 5 || str[i] == 6 || str[i] == 7 || str[i] == 8 || str[i] == 9)
  
  if (str[i] >= '0' && str[i] <= '9')
  {
   temp = str[i] - '0';
   //如果字符为一个数字,则转为整型加入栈中
   stk.push(temp);
  }
  else if (str[i] == 'C')
  {
   if (!stk.empty())
   {
    stk.pop();
   }
   else
    cout << "输入格式有误!";
  }
  else if (str[i] == 'D')
  {
   if (!stk.empty())
   {
     temp = stk.top() * 2;
    
     stk.push(temp);
   }
   else
    cout << "输入格式有误!";
  }
  else if (str[i] == '+')
  {
   if (!stk.empty())
   {
    int temp1;
    temp1 = stk.top();
    stk.pop();
    temp =temp1 + stk.top();
    stk.push(temp1);
    stk.push(temp);
   }
   else
    cout << "输入格式有误!";
  }
 }
 while (!stk.empty())
 {
  sumScore += stk.top();
  stk.pop();
  //cout << sumScore;
 }
 return sumScore;
}
int main()
{
 //char str[6] = { '5', '2', 'C', 'D', '+', '\0' };
 //char str[];
 vector arr;
 
 char j;
 cin >> j; 
 arr.push_back(j);
 while ((cin.get()) != '\n')
 {
  char k;
  cin >> k;
  arr.push_back(k);
 }
 cout << "  round:  ";
 for (int i = 0; i < arr.size(); i++)
 {
  cout << i << "   ";
 }
 cout << endl;
 cout << "str[round]:";
 for (int i = 0; i < arr.size(); i++)
 {
  cout << arr[i] << "   ";
 }
 int length = arr.size();
 char *str = new char(length);
 memcpy(str, &arr[0], arr.size() * sizeof(char));
 cout << endl;
 cout << "总分=" << frogPoints(str,length);
    return 0;
}

你可能感兴趣的:(数据结构,C++,青蛙杯)