注册 登录
编程论坛 C++教室

为什么输入正确符号后会显示“输入有误”

小林111 发布于 2015-10-09 15:26, 547 次点击
#include<iostream>
#include<stdio.h>
#include<stdlib.h>

using namespace std;

float add(float a, float b)
{
    return(a+b);
}
float minus(float a, float b)
{
    return(a-b);
}
float multi(float a, float b)
{
    return(a*b);
}
float div(float a, float b)
{
    return(a/b);
}
float calculate(float a, float b, char k)
{
    float s;
    switch(k)
    {
        case '+':
    s=add(a,b);
    break;
        case'-':
            s=minus(a,b);
            break;
        case '*':
            s=multi(a,b);
            break;
        case '/':
            s=div(a,b);
            break;
    }
    return(s);
}



int main()
{
    float a,b;
    char k;
    cout<<"             简易计算器"<<endl;
    cout<<"请输入运算符"<<endl;
    cin>>k;
    if(k!='*'||'-'||'+'||'/')
    {
        cout<<"输入有误"<<endl;
   
    if(k=='#')
    {
        //cout<<"计算结束"<<endl;
        
    }
    }

    cout<<"请输入运算数值"<<endl;
    cin>>a>>b;
    //cin.ignore (numeric_limits<std::streamsize >::max());
    //cin.ignore (numeric_limits<std::streamsize>::max());
    cout<<"结果为"<<calculate(a,b,k)<<endl;
   
    system("pause");
    return 0 ;
}
5 回复
#2
rjsp2015-10-09 15:50
if(k!='*'||'-'||'+'||'/')

if( k!='*' && k!='-' && k!='+' && k!='/' )
#3
hjx11202015-10-09 16:23
代码能精减就精减,
写的时候能先在脑子里面打下“草稿”就尽量打下“草稿”
别整的把自己弄的晕头转向,之后把自己整到死港子里出不来
比如这句:
 if(k=='#')
    {
        //cout<<"计算结束"<<endl;
        
    }
设计的初中可能是让代码循环的,结果写了句莫明奇妙的退出条件

good luck
#4
yangfrancis2015-10-09 17:42
就是二楼说的问题,没别的解释。
#5
小林1112015-10-12 08:34
回复 3楼 hjx1120
谢谢!
#6
ITCD2015-10-17 11:37
if(k!='*'||'-'||'+'||'/')   基本语法问题
1