我目前正在撰寫一個程式,用戶可以輸入一個可被數字 50、20 和 10 整除的數量。
我試圖讓它作業的方式是,例如用戶填寫 180 的數量,程式將計算類似
“已使用 3 張 50 票” “已使用 1 張 20 票” “已使用 1 張 10 票”
但是,我什至不知道從哪里開始。如果這太含糊,我很抱歉,但任何幫助將不勝感激
我試圖將我的數字放入一個陣列中,但不幸的是沒有奏效。我也嘗試將它們分開,但這也不起作用
uj5u.com熱心網友回復:
我相信你想要的是一個分而治之的模式:
#include <iostream>
int main() {
std::cout << "enter amount: ";
if(long ui; std::cin >> ui) {
long c50s = ui / 50; // divide
ui -= c50s * 50; // reduce amount
long c20s = ui / 20; // divide
ui -= c20s * 20; // reduce amount
long c10s = ui / 10; // divide
ui -= c10s * 10; // reduce amount
std::cout
<< c50s << " tickets of 50 have been used\n"
<< c20s << " tickets of 20 have been used\n"
<< c10s << " tickets of 10 have been used\n"
<< "you have " << ui << " left\n"
;
} else {
std::cerr << "invalid input\n";
}
}
180如果作為輸入給出示例:
3 tickets of 50 have been used
1 tickets of 20 have been used
1 tickets of 10 have been used
you have 0 left
如果你經常這樣做,你可以創建一個輔助函式:
long div_and_reduce(long& input, long div) {
long result = input / div; // divide
input -= result * div; // reduce
return result;
}
int main() {
std::cout << "enter amount: ";
if(long ui; std::cin >> ui) {
long c50s = div_and_reduce(ui, 50);
long c20s = div_and_reduce(ui, 20);
long c10s = div_and_reduce(ui, 10);
// ...
uj5u.com熱心網友回復:
每當您陷入編程困境時,都應該分解問題。有些人談論“編輯空程式,直到它完成它應該做的事情”。他們的意思是從零開始,然后解決第一步(通常將資料輸入程式)。徹底測驗它。然后進入下一步。
就您而言,您需要收集資料。所以我會從那個開始。啟動程式。提示用戶并詢問他們想要的號碼。把它列印出來。確保它有效。
然后——想想你將如何手動執行此操作。這將使您朝著下一步的正確方向前進。如果這太難了,那么至少定義下一步并將其分解成足夠小的碎片,您可以一次一步地弄清楚如何去做。
最終這些步驟將非常小,它們只是一行代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/451716.html
上一篇:加工中的拋物線
下一篇:計算笛卡爾空間中的偏移坐標
