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;
}

posted @ 2016-01-26 14:23  小坏蛋_千千  阅读(234)  评论(0编辑  收藏  举报