解說1:讓我們談談水。 在這個問題中,我們要求用戶告訴 他們的淋浴我們多久分鐘 然後我們計算等價 瓶水數 所使用的淋浴。 那麼什麼是我們要做的事 對於這個問題? 首先,我們會想 提示再驗證 該用戶給我們的輸入。 一旦我們確保我們 擁有有效的用戶輸入, 我們要計算 瓶裝水的當量數 該用戶在過 他們洗澡,然後我們 要通過告訴他們 打印出該號碼。 因此,讓我們來解決我們的第一個 任務提示和確認 用戶的輸入。 為此,我們已經寫了一個 功能你叫 get_int位於CS50資源庫中 get_int確保用戶輸入 一個整數,因此任何正數, 負數,或 零都接受。 但是,如果用戶別的輸入什麼, 這樣的字母或數字的任意組合 或十進制數,則 用戶將被提示重試 該函數將不接受任何 直到用戶給了他們一個整數。 那麼,我們如何使用get_int? 如果您打開您的工作區和 創建一個名為integer.c的咱們文件 鍵入以下命令。 #標籤包括cs50.h. 這是必要的,因為get_int 是CS50庫函數, 因此,我們必須HASHTAG包括 它以聲明 使用的功能。 然後在我的主 功能我只是去 簡單地調用函數get_int。 因此,讓我們運行這個,看看它是如何工作的。 我已經編譯它,讓我們 只是繼續前進,運行這個程序, 。/整數。 在這裡,我有一個提示, 這裡就是我輸入的值。 說我把只是一些整數, 50,節目節選並退出 就是這樣。 但說我再次運行它, 我輸入別的東西。 也許,世界你好。 這不是一個整數,所以 程序會提示我重試。 讓我們再試一次 也許是小數這個時候。 0.5,再次,不是一個整數,以便 該程序將不會接受 它會告訴我重試。 因此,讓我們給它一個號。 該計劃接受它, 退出,我們就大功告成了。 所以,現在我們有一個函數 這使我們和保證 該用戶輸入一個 整數,但如何才能 實際上跟踪的 由用戶整數輸入? 嗯,我們要做的是商店 在一個變量此值,說ñ。 所以,如果我宣布一個整數n, 我該值設置為get_int, 那麼n將然後存儲任何 重視輸入的用戶。 好了,所以現在我們已經確保了 用戶會給我們一個整數 我們知道如何跟踪 整數的,但要記住, 整數是正面和負面的。 所以它並沒有真正意義 在此問題的範圍內 該用戶進行淋浴 都說負12分鐘。 因此,我們需要確保用戶 其實給了我們一個正整數。 現在,我們沒有只是一個 對於功能單一, 所以我們將有 創建自己。 因此,我們要不斷 提示用戶 直到他們給我們一個正整數。 如果我做的事情,然後不斷 這是類似於一個循環,重複。 所以我們使用的構建體中的一個 在C來實現重複和循環 是一個while循環。 因此,while循環,如 在這裡顯示,將執行 無論是在循環的身體 只要給定的條件計算 為true。 一旦這個條件 計算結果為假,那麼 該計劃將進行到什麼 而來的循環體之後。 因此while循環將要 在CS50真的很有用。 但是在這個特定的 情況下,我們知道我們 要至少提示用戶 一次,然後僅循環,如果必要的。 所以在這裡我們就來 特殊結構,這​​就是 非常相似的,同時 循環稱為do-whil​​e循環。 因此,一個do-whil​​e循環執行 循環體至少一次 然後它檢查 它是否應該執行, 而不是一個while循環, 這將檢查情況 然後執行機構。 因此,在do-whil​​e循環是我們可能 要做的就是提示用戶輸入一個整數, 然後檢查它是否是無效或不。 如果它是無效的,然後我們會 重複上述過程,詢問用戶 給我們另一個整數,然後 只有當該整數是有效的, 我們將繼續 無論發生什麼事之後。 現在你會發現, 整數n的聲明 是略有不同的是我們 在前面的例子中那樣之前 這是因為的範圍。 如果我們宣布整數n內 在do-whil​​e循環體中, 然後我們將不能夠訪問 為n的那些捲曲以外的價值 括號表示循環體。 但是,我們實際上要訪問的 為n的值後來在我們的節目。 好了,現在讓我們來談談 這個條件應該是什麼。 我們只希望重新提示的 用戶只要n是無效的。 因此,認為自己什麼無效 整數值會是什麼樣子 然後創建一個布爾 表情來表達。 我們幾乎與我們的子任務完成 提示的和驗證用戶輸入。 因此,讓這一點 位用戶更友好 並給用戶一個小 位的更多信息 什麼我們提示他們。 因此,讓我們提示用戶,每 規範,以字符串分鐘。 因此,使用您的printf語句,使 一定要符合這個準確。 好吧。 所以現在我們有一個有效的用戶 輸入,一個正整數 有多少分鐘值 他們在浴室度過的。 那麼,接下來就是計算 同等數量的瓶子。 我們打算在這裡做可能 首先對你非常明顯, 這就是確定。 我們想要做的是我們 要開始練習 檢測模式的想法, 開發用於問題的公式。 因此,我們每個規格告訴 在淋浴的1分鐘 相當於大約 12瓶水。 於是2分鐘會 相當於24, 五分鐘將 相當於60。 所以,現在,如果你想 你得到了它,那麼讓我們來 看你能不能拿出 用圖案或式 表達如果我們說,正 水分鐘,多少瓶 將在n個來表示? 再次,儘管這 可能首先是簡單的, 後來當我們對 更複雜的問題 我們將想進入 識別的實踐 模式和發展公式 推測這些東西。 在C你有機會獲得 標準的算術運算, 加法,減法, 乘法和除法。 所以我會離開它 你現在要弄清楚 如何表達 瓶相當於數 該用戶消耗 在他們的淋浴。 好吧,我們幾乎已經完成。 我們已經提示輸入其用戶輸入, 我們保證它的有效輸入, 然後,我們已經找到了如何 計算等效 他們消耗的瓶數。 所以做的最後一件事是將輸出 瓶子的當量數 並希望鼓勵 他們節約一些水。 輸出值將 是一個printf語句。 如果我想告訴你,我 有三個寵物,例如, 我可能會使用printf語句 這看起來是這樣的。 我有三個寵物,和一個新的 行漂亮的格式。 現在我們不想 簡單的硬編碼的東西。 說的次數我 寵物隨時間而改變。 然後,我將利用 佔位符在我的printf語句。 所以在這裡我的電話號碼是一個整數。 所以我要做一個佔位符 使用%I整數。 我打算寫的字符串, 再後弦 我寫了一個逗號,然後 我想打印變量。 這樣該值將被打印 代替該佔位符,%I的。 您可以使用的佔位符,如 同時,對於具有%F浮動。 您也可以有多個 佔位符的字符串。 舉例來說,如果我有一些號碼 狗和一定數目的貓的, 我把兩個佔位符這裡,然後 我的兩個變量各自的順序。 所以,現在我們知道如何打印 存儲在變量中的值, 的最後的事 做的是確保我們 在精確的格式打印的價值 在本說明書中表示。 就這樣,我們已經提示 用戶和驗證他們的意見。 然後,我們已經計算相當於 瓶水數 其是在淋浴過程中消耗, 我們已經輸出了價值給他們。 因此,我們已經完成了水。 我的名字是 [? Zamila,?] 這是CS50。