C++ 我不懂打字
我是一个编程新手,以前没有编程经验。我买了一本书,叫做C++编程,绝对是初学者的李国煌(不是广告或任何东西),在第2课结束时(显示变量和忘记解释铸造),他们给你这个游戏:C++ 我不懂打字,c++,C++,我是一个编程新手,以前没有编程经验。我买了一本书,叫做C++编程,绝对是初学者的李国煌(不是广告或任何东西),在第2课结束时(显示变量和忘记解释铸造),他们给你这个游戏: #include <iostream> #include <string> int main() { using std::cout; using std::cin; using std::string; string name; cout << "
#include <iostream>
#include <string>
int main() {
using std::cout;
using std::cin;
using std::string;
string name;
cout << "Welcome to the weapon store, noble knight."
<< " Come to equip the army again?\n"
<< "What is your name? ";
cin >> name;
cout << "Well then, Sir " << name.c_str()
<< ", let's get shopping\n";
double gold = 50.0;
int silver = 8;
const double SILVERPERGOLD = 6.7;
const double BROADSWORDCOST = 3.6;
unsigned short broadswords;
cout << "You have " << gold << " gold pieces and "
<< silver << " silver." << "\nThat is equal to ";
gold += silver / SILVERPERGOLD;
cout << gold << " gold.\n";
cout << "How many broadswords would you like to buy?"
<< " (3.6) gold each ";
cin >> broadswords;
gold = gold - broadswords * BROADSWORDCOST;
cout << "\nThank you. You have " << gold << " left.\n";
silver = (int)((gold - (int)gold)) * SILVERPERGOLD;
gold = (double)((int)(gold));
cout << "That is equal to " << gold << " gold and "
<< silver << " silver. \n"
<< "Thank you for shopping at the Weapon Store. "
<< "Have a nice day, Sir " << name.c_str() << ".\n";
system("pause");
return 0;
}
#包括
#包括
int main(){
使用std::cout;
使用std::cin;
使用std::string;
字符串名;
库特
+=
表示“将+=
左侧的变量增加右侧的量”
这是一种非常非常错误的浮点余数计算方法
类型castiing是显式类型转换的另一个名称
(double)x
表示“取代码< x/>代码>返回相同的值,但类型<代码>双< /代码>。如果<代码> x<代码>为7,结果将是7。在C++中使用类型转换是一种长期过时的方法。谷歌“C样式转换”以获取更多信息。
相应地,
(int)x
表示“取x并返回与int
”相同的值。如果x为7.83,则结果为7(即小数部分被删除)
所以((gold-(int)gold))
的意思是“从gold
中减去整个部分,留下小数部分”。然后作者将结果乘以金银转换率,并将其四舍五入为整数。这可能会给我们银币的变化量。最后,使用gold=(double)((int)(黄金)
作者将黄金的数量向下舍入为整数。小数部分已转换为白银,因此两个数字,黄金和白银一起构成您的货币总额
整个操作都试图在价格中加入一整块黄金,并用白银来弥补其余部分。千万不要这样做。白银被铸造成双倍,因此等于8.0“cout@BaummitAugen抱歉,伙计,不。@sirvilliamoforange这本书已经在教你坏习惯,比如C风格的演员。你应该接受建议。因为,坏程序员是你的主要敌人。他们在互联网上写书、写博客和发帖,他们的数量远远超过了好程序员。“取x的值,并将其视为具有类型double”。-不,这意味着将x
的值转换为类型double
@MattMcNabb这是正确的,但解释不了太多。“Cast”和“convert”“是同义词,用另一个来解释一个并不过分。@nm它们不是同义词。Cast表示显式转换;也有非Cast转换(又称隐式转换)。尽管我同意你的观点,说“一个Cast转换值”实际上说的不多。我将重新措辞:我认为“将值视为”这不是一个很好的描述;它让人想起将int*
转换为char*
时发生的情况,通常被描述为“将int视为一系列字符”。例如,当将double
转换为int
时,值可能会更改;您会丢失信息。它会生成一个新值,而不是旧值的视图。@MattMcNabb我对措辞做了一些更改。@n.m.非常感谢我做了一些研究,并消除了作者向我展示的一些坏习惯。谢谢!
(double)x
(int)x