//#include conio.h
//#include iomanip
//#include iostream
//#include string
using namespace std;
const string Zo;
double Sp;
double Li;
double Ti;
void main()
{
cout<<setiosflags(ios::fixed);
cout<<setprecision (2);
cout<<setw(22)<<"Speeding Ticket"<<endl;
cout<<"Please Enter Your Speed :";
cin>>Sp;
cout<<"Speed Limit:";
cin>>Li;
cout<<"IF School Zone Enter (Yes/No):";
cin>>"Yes"||"No";
if(Zo=="Yes")
Ti=30+6*(Sp-Li);
else
Ti=30+3*(Sp-Li);
if (Sp>=Li+30)
Ti=Ti+100;
cout<<"Your Speeding Ticket Is:"<<"$"<<Ti<<endl;
getch();
}
这不是我对第一个尝试的第一次尝试,它是
cin>>Zo
,但是老师说找到了一种更好的方法,因此,如果用户输入错误,它将知道。我是一个初学者,所以我尽可能地做到了。 最佳答案
我想您的老师想要更好的数学(这意味着您的应用程序有更好的逻辑),可能的变体之一是:
const double additionalTicket = (Sp >= Li+30) ? 100 : 0;
const double schoolZoneMultiplier = (Zo == "Yes") ? 6 : 3; // be sure that you understand when to use strcmp and when ==
Ti = 30 + schoolZoneMultiplier*(Sp-Li) + additionalTicket;
这个变体也一样,但是您会看到实际的公式,因此通常这样的代码更易于理解,并且该代码的某些部分可以由CPU并行执行
注意:您在
cin>>"Yes"||"No";
上遇到问题-这只是没有意义关于c++ - 我的程序运行良好,但老师希望它更有效率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19530477/