Description
注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交。
有ABCD四种装置,将一个数输入一种装置后,会输出另一个数,
装置A:将输入的数加上5:
装置B:将输入的数除以2;
装置C:将输入的数减去4;
装置D:将输入的数乘3,
这些装置可以连接,如装置A后面连接B,就写成AB。
给出一种装置的连接序列,当输入m时,输出的结果是多少?
#include <iostream>
using namespace std;
int equipment(char connstr[],int value)
{
char ch;
int i=0;
/*****修改的起始行******/
while((ch=connstr[i])!='\0') //可能出错
{
switch(ch)
{
case 'A':
value+=5; //可能出错
case 'B':
value/=2; //可能出错
case 'C':
value-=4; //可能出错
case 'D':
value*=3; //可能出错
} //可能出错
}
/*****修改的终止行*****/
return value;
}
int main()
{
char connstr[100];
int result,value;
cin>>value;
cin.getline(connstr,100);
while(cin.getline(connstr,100))
{
result = equipment(connstr,value);
cout<<result<<endl;
}
return 0;
}
Input
第一行m
第二行开始,每行对应一种装置的连接序列
Output
每种连接序列的输出结果,每个结果占一行
Sample Input
10
ABCD
DCBA
AABBCCDD
DDCCBBAA
Sample Output
9
18
-27
30
HINT
Source
【AC代码】:
#include <iostream>
using namespace std;
int equipment(char connstr[],int value)
{
char ch;
int i=0;
/*****修改的起始行******/
while((ch=connstr[i])!='\0') //可能出错
{
switch(ch)
{
case 'A':
value+=5;
break; //可能出错
case 'B':
value/=2;
break; //可能出错
case 'C':
value-=4;
break; //可能出错
case 'D':
value*=3;
break; //可能出错
} //可能出错
i++;
}
/*****修改的终止行*****/
return value;
}
int main()
{
char connstr[100];
int result,value;
cin>>value;
cin.getline(connstr,100);
while(cin.getline(connstr,100))
{
result = equipment(connstr,value);
cout<<result<<endl;
}
return 0;
}