華為機試後才知道自己連輸入都不會處理

2021-10-05 02:46:36 字數 304 閱讀 7671

我們先看下 cin>> 與 getline 的工作方式,流提取運算子根據它後面的變數型別讀取資料,從非空白符號開始,遇到 enter、space、tab 鍵時結束。getline函式從istream中讀取一行資料,當遇到「\n」時結束返回。

造成程式錯誤結果的原因是,使用者輸入完年齡後按回車結束輸入,把「\n」留在了輸入流裡,而 cin 不會主動刪除輸入流內的換行符,這樣換行符就被 getline 讀取到,getline 遇到換行符返回,因此程式不會等待使用者輸入。

解決的辦法是手動清除換行符,在cin>>後加上 cin.ignore();,這樣即可得到正確結果。

華為機試整理

include stdafx.h includeusing namespace std int main int argc,tchar argv cout 2.大數相加 用stl的string比較方便,如下,自己測了幾組資料沒有什麼問題。include stdafx.h include includ...

華為機試 2013

1.字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出現的字母按第一次出現算。...

華為機試3

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序...