这个c ++代码中的错误是什么

时间:2011-11-13 12:12:40

标签: c++

我的朋友写了一个c ++代码,它没有用,他来找我帮忙。问题是我不知道c ++ :)我对python更感兴趣,我不想很快学习c ++,所以我来这里寻求帮助:)这里是代码

#include<iostream>

using namespace std;

int main (){
    char a ;
    cin >> a ;
    switch (a) {
    case '+' :
        int x , y , result ;

        cout << "Enter A number >> " ;
        cin >> x ;
        cout << endl ;

        cout << "Enter A number >> " ;
        cin >> y ;
        cout << endl ;

        result = x+y ;

        cout << "The Answer Is >> " << result << endl ;
        break ;
    case '-' :
        int x , y , result ;

        cout << "Enter A number >> " ;
        cin >> x ;
        cout << endl ;

        cout << "Enter A number >> " ;
        cin >> y ;
        cout << endl ;

        result= x-y ;

        cout << "The Answer Is >> " << result << endl ;
        break ;
    default :
        cout << "Please choose the right operaions !" << endl ;
    }
    return 0 ;
}

4 个答案:

答案 0 :(得分:2)

您在一个语句块中多次定义int x, y, result。合并定义并移动到函数的顶部,然后它将编译。像:

char a;
int x, y, result;

答案 1 :(得分:1)

 case '+' :
        int x , y , result ;

        cout << "Enter A number >> " ;
        cin >> x ;
        cout << endl ;

        cout << "Enter A number >> " ;
        cin >> y ;
        cout << endl ;

        result = x+y ;

        cout << "The Answer Is >> " << result << endl ;
        break ;

不起作用,但您可以通过添加范围来编译它:

 case '+' :
        {
           int x , y , result ;

           cout << "Enter A number >> " ;
           cin >> x ;
           cout << endl ;

           cout << "Enter A number >> " ;
           cin >> y ;
           cout << endl ;

           result = x+y ;

           cout << "The Answer Is >> " << result << endl ;
        }
        break ;

...

但是代码应该重新构建,因为有很多重复的代码。

答案 2 :(得分:0)

您在语句“switch”中声明了int x,y和int类型的结果2次。声明它们是全局变量或在switch语句之外(在main()函数内)。

答案 3 :(得分:0)

在开关块内定义变量不起作用,这里是why