VC++程序运行问题
#include <iostream>
using namespace std;
double jia(double a,double b)
{
double c;
c=a+b;
return c;
}
double jian(double a,double b)
{
double c;
c=a-b;
return c;
}
double cheng(double a,double b)
{
double c;
c=a*b;
return c;
}
double chu(double a,double b)
{
double c;
c=a/b;
return c;
}
void main()
{
double x,y;
char ch;
cout<<"*****欢迎使用*****\n";
do
{
cout<<"\n";
cout<<"如果您要退出请输入 # 键\n";
cout<<"请输入表达式:";
cin>>x>>ch>>y;
cout<<"\n";
switch(ch)
{
case '+': cout<<x<<"+"<<y<<"="<<jia(x,y)<<"\n"; break;
case '-': cout<<x<<"-"<<y<<"="<<jian(x,y)<<"\n"; break;
case '*': cout<<x<<"*"<<y<<"="<<cheng(x,y)<<"\n"; break;
case '/': cout<<x<<"/"<<y<<"="<<chu(x,y)<<"\n"; break;
case '#': cout<<"*****谢谢使用*****\n";
default: cout<<"对不起,你输入的有误,请重新输入。\n"; break;
}
}while((ch=getchar())!='#');
}
为什么不运行 case '#': cout<<"*****谢谢使用*****\n"; 这一行,
怎么才能运行这一行
谢谢。
[解决办法]
cin>>x>>ch>>y;
这句输入的问题。
x是double类型,但如果直接输入字符型的'#',cin会返回一个错误标志,结束输入。
个人觉得不能用ch同时来作为是否退出的判断。
应该重新声明一个判断字符,在switch执行完后输入判断字符,判断是否退出。
[解决办法]
#include <iostream>
using namespace std;
double jia(double a,double b)
{
double c;
c=a+b;
return c;
}
double jian(double a,double b)
{
double c;
c=a-b;
return c;
}
double cheng(double a,double b)
{
double c;
c=a*b;
return c;
}
double chu(double a,double b)
{
double c;
c=a/b;
return c;
}
void main()
{
double x,y;
char ch;
cout<<"*****欢迎使用*****\n";
cout<<"如果您要退出请输入 # 键\n";
cout<<"请输入两个你要处理的数:";
cin>>x>>y;
cin>>ch;
do
{
switch(ch)
{
case '+': cout<<x<<"+"<<y<<"="<<jia(x,y)<<"\n"; break;
case '-': cout<<x<<"-"<<y<<"="<<jian(x,y)<<"\n"; break;
case '*': cout<<x<<"*"<<y<<"="<<cheng(x,y)<<"\n"; break;
case '/': cout<<x<<"/"<<y<<"="<<chu(x,y)<<"\n"; break;
//case '#': cout<<"*****谢谢使用*****\n"; break;
default:
cout<<"对不起,你输入的有误,请重新输入:\n";
break;
}
fflush(stdin);
cout<<"请输入#号退出!";
}while((ch=getchar())!='#');
}
[解决办法]
#include "stdafx.h"
#include <iostream>
using namespace std;
double jia(double a,double b)
{
double c;
c=a+b;
return c;
}
double jian(double a,double b)
{
double c;
c=a-b;
return c;
}
double cheng(double a,double b)
{
double c;
c=a*b;
return c;
}
double chu(double a,double b)
{
double c;
c=a/b;
return c;
}
void main()
{
double x,y;
char ch;
cout<<"*****欢迎使用*****\n";
do
{
cout<<"\n";
cout<<"如果您要退出请输入 # 键\n";
cout<<"请输入表达式:";
cin>>x>>ch>>y;
cout<<"\n";
switch(ch)
{
case '+': cout<<x<<"+"<<y<<"="<<jia(x,y)<<"\n"; break;
case '-': cout<<x<<"-"<<y<<"="<<jian(x,y)<<"\n"; break;
case '*': cout<<x<<"*"<<y<<"="<<cheng(x,y)<<"\n"; break;
case '/': cout<<x<<"/"<<y<<"="<<chu(x,y)<<"\n"; break;
case '#': cout<<"*****谢谢使用*****\n";
default: cout<<"对不起,你输入的有误,请重新输入。\n"; break;
}
}while((ch=getchar())!='#');
//system("pause");
}
没问题了lz
[解决办法]
#include <iostream>using namespace std;double jia(double a,double b){double c;c=a+b;return c;}double jian(double a,double b){double c;c=a-b;return c;}double cheng(double a,double b){double c;c=a*b;return c;}double chu(double a,double b){double c;c=a/b;return c;}void main(){double x,y;char ch;cout<<"*****欢迎使用*****\n";cout<<"如果您要退出请输入 # 键\n";cout<<"请输入两个你要处理的数:";cin>>x>>y;cin>>ch;do { switch(ch){case '+': cout<<x<<"+"<<y<<"="<<jia(x,y)<<"\n"; break;case '-': cout<<x<<"-"<<y<<"="<<jian(x,y)<<"\n"; break;case '*': cout<<x<<"*"<<y<<"="<<cheng(x,y)<<"\n"; break;case '/': cout<<x<<"/"<<y<<"="<<chu(x,y)<<"\n"; break;default: cout<<"对不起,你输入的有误,请重新输入:\n"; break;}fflush(stdin); cout<<"请输入#号退出!"; }while((ch=getchar())!='#');cout<<"*****谢谢使用*****\n"; }