gpt4 book ai didi

c++ - 从编程 : Principles and Practice using C++. Bjarne Stroustrup 的第 4 章开始练习

转载 作者:行者123 更新时间:2023-11-30 03:03:32 24 4
gpt4 key购买 nike

几天来,我一直在为这些练习苦苦思索,但我无法掌握它们。我必须在我的数字中添加一个单位(即米、英尺、英寸、厘米)并拒绝无效单位,然后将数字和单位转换为米。
我的代码显示了如何选择和保持最高和最低数字等,但我完全不知道如何添加单位部分,我已经尝试过 if 语句,它们看起来像是工作,但后来他们不这样做,我很沮丧,老实说,我错过了一些基本要点,这让我很烦恼。到目前为止,这是我的代码

int main(){
double val1=0;
string unit;
double large=0;
double small=0;

cout<<"please Enter 1 number and a unit (cm, M, Ft, In):\n";
while (cin>>val1>>unit){

if(val1<small) {small=val1; cout<<"smallest so far\n";}//find smallest number
else if(val1>large) {large=val1; cout<<"largest so far\n";}//Find largest number



else cout<<"Neither largest nor smallest\n";
}
cout<<"The smaller value so far is (in metres): "<<small<<"\n";
cout<<"The larger value so far is (in metres): "<<large<<"\n";

keep_window_open("~");
return 0;

}

这不是家庭作业,我这样做只是为了我自己的兴趣。任何帮助将不胜感激。

最佳答案

1 .通过第 4 章,您已经了解常量和“魔法常量或数字”
( What is a magic number, and why is it bad? )。

2。 cout << "请输入 1 个数字和一个单位 (cm, M, Ft, In):"<< endl;这是错误的,因为您使用大写字母并测试小写字母。



3 .if (small == 0 && val1 > large)

如果我输入 0 m,它会说它“既不是最大也不是最小”,就像那些已经设置的那样,更好使用

  if(small=0 && large==0)



4 .Personaly 我不喜欢这种转换成米我宁愿使用

    if(unit=="m")
{
if( (val1*=m_in_cm) <= small)
{
std::cout<<"\nThe smallest value so far "<<val1<<" "<<unit<<" \n";
small=val1;
}
if( (val1*=m_in_cm) >= large)
{
std::cout<<"\nThe largest value so far "<<val1<<" "<<unit<<" \n";
large=val1;
}
}
else if(unit=="in"){....}

其中“m_in_cm”是

const double m_in_cm=100;

它保留原始值和使用的单位。

关于c++ - 从编程 : Principles and Practice using C++. Bjarne Stroustrup 的第 4 章开始练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com