YTU 2838: 改错题AB-装置连接
2838: 改错题AB-装置连接
时间限制: 1 Sec 内存限制: 128 MB提交: 81 解决: 49
题目描述
注:本题只需要提交标记为修改部分之间的代码,请按照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;
}
输入
第一行m
第二行开始,每行对应一种装置的连接序列
输出
每种连接序列的输出结果,每个结果占一行
样例输入
10
ABCD
DCBA
AABBCCDD
DDCCBBAA
样例输出
9
18
-27
30
你 离 开 了 , 我 的 世 界 里 只 剩 下 雨 。 。 。
#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; }