你可以帮我这个代码吗?

时间:2013-10-16 16:56:11

标签: c++ switch-statement

我需要一个有7个部分的程序 首先,我要求用户输入他/她想要做的操作次数...
然后我使用一个开关盒结构,根据用户输入的数字采取行动...... 然后根据数字,相关函数扮演它的角色......
但似乎我不能写出我想要的东西......我不知道它有什么问题

#include<iostream>
using namespace std;
void sum(int,int);
void sub(int,int);
void multiply(int,int);
void division(int,int);
void remaining(int,int);
void power(int,int);
int main()
{
    int num1,num2,s;
    cout<<"1) summmation"<<"\t""\t"<<"6) power"<<endl;
    cout<<"2) subtraction"<<"\t""\t"<<"7) exit"<<endl;
    cout<<"3) multiply"<<"\n"<<"4) division"<<"\n"<<"5) remaining"<<"\n""\n";
    cout<<"what do u want us to do?"<<endl;
    cin>>s;
    cout<<"enter your numbers:"<<endl;
    cin>>num1>>num2;
    switch(s)
    {   
        case '1':
            sum(num1,num2);
            break;
        case '2' :
            sub(num1,num2);
            break;
        case '3' :
            multiply(num1,num2);
            break;
        case '4' :
            division(num1,num2);
            break;
        case (5):
            remaining(num1,num2);
            break;
        case '6' :
            power(num1,num2);
            break;
        default:
            cout<<"incorrect";
    }
    system("pause");
}
//
void sum(int x,int y)
{
    int summation;
    summation = x+y;
    cout<<summation;
}
//
void sub(int x,int y)
{
    int subtract;
    subtract = x - y;
    cout<<subtract;
}
//
void multiply(int x,int y)
{
    int multi;
    multi=x*y;
    cout<<multi;
}
//
void division(int x,int y)
{
    float div;
    div= x/y;
    cout<<div;
}
//
void remaining(int x,int y )
{
    int remain;
    remain=x%y;
    cout<<remain;
}
//
void power(int x,int y)
{
    int i,p=1;
    for(i=0;i<y;i++)
        p=p*x;
    cout<<p;
}

1 个答案:

答案 0 :(得分:2)

变量s的类型为int。但是在case语句中,你将它与字符文字进行比较。整数1不等于字符'1'。将单个字符与数字进行比较时,该字符将转换为其ascii-code值。字符'1'的ascii代码为49.

删除值周围的单引号,它应该可以工作。