牛客網 C 輸入 輸出常用格式

2022-06-22 14:51:15 字數 3299 閱讀 8469

牛客網的刷題系統大部分都是要自己控制輸入輸出的,有輸入輸出的程式設計就會出現各種格式問題,(說到底在輸入輸出上出現問題可能還是對語言基礎掌握不牢),

下面就是一些常見的輸入輸出問題(如果leetcode刷習慣了,估計會經常採坑)

其實這樣也是很正常的,因為**已經編譯執行過了一次,直接在該次執行中進行多組測試即可,無需多次重複編譯執行。

幾乎所有的輸入都是數字或者字串,根據數字和字串可以將輸入分為幾種情況:

一、先說數字(通常給定一組數,或者給定給乙個陣列)

(1)直接輸入乙個數,對該數字進行一些操作,例如判斷是否是素數,立方根等,這種型別只需要輸入乙個數即可,可用以下幾種輸入:

int n;//定義乙個輸入變數用於接收系統輸入的數字

cin>>n;//方式一,直接輸入,再執行相應操作

while(cin>>n)

(2)給定乙個數,表示有多少組數(可能是字元和數字的組合)

//舉個例子,輸入乙個數n表示有多少個學生,然後輸入每個學生的姓名和學號,要求按學號降序列印每個學生的資訊,例子如下:

//輸入:3

// liming,1410

// zhangsan,1562

// lisi,1355

//輸出:

// zhangsan,1562

// liming,1410

// lisi,1355

//對於上例,輸入一般採用以下的方法

int n;//學生總數

while(cin>>n)

}//也可以不用while迴圈(不推薦,除非用while不好處理或者處理不了)

int n;

cin>>n;

for(int i=0;i>stu[i].name>>stu[i].num;//輸入姓名和學號

}//這種方式看似很直觀易懂,但這種方式對於系統裡的測試用例來說可能不太友好,一般c++的輸入都強調流的概念,這種方式只能某些情況下可以使用,大家可以自己多刷一刷,就會發現這種方式經常會遇到莫名其妙的錯誤

(3)可能直接就是要求輸入一組數,並不告知具體的數量,以(2)的例子為例,如果不告訴你多少個學生,你就無法根據學生數量用for迴圈輸入了,這時候用while迴圈就可以很好地處理(流的處理模式)

string name;//定義姓名變數

int num;//定義學號變數

while(cin>>name>>num);

input.push_back(s);//用乙個結構體陣列來接收輸入的學生資訊即可

//....

}

二、再說字元(串)(很常見)

(1)給定字元(串),進行相關地處理

//給定字元

char ch;

cin>>ch;//方式一

while(cin.get(ch))//方式二

//給定字串

string input;

getline(cin,input);//方式一

cin>>input;//方式二

while(方式一/方式二) //方式三

//還是推薦用方式三的輸入方式,不容易出錯,字串的一些題目用方式一和方式二可能會出錯(由於輸入格式的問題)

(2)給定不止一組字串,告知大小

//舉個例子,先輸入乙個數表示有多少個字串,再輸入每個字串,根據字串長度排序

int n;//定義數量

string temp;//字串變數

while(cin>>n)

}//下面是另一種不安全的寫法

int n;//定義數量

cin>>n;//輸入數量

string temp;//字串變數

vectorinput; //儲存所有的字串

for(int i=0;i>temp; //輸入字串

input.push_back(temp);//儲存

}//以該例題為例,可能在本地ide能得到正確答案,但如果是牛客網系統,由於輸入格式的問題,這樣寫編譯會通過,就是得不到正確答案

(3)輸入一組字串,不告知大小,仍然以上個例子舉例,不告訴你有多少字串,這樣就不能根據數量來用for迴圈做了,但可以用while迴圈處理

string temp;//字串變數

vectorinput; //儲存所有的字串

while(cin>>temp)

c++的輸出cout與輸入cin一樣都是用流來控制的,cin和cout都在iostream這個標頭檔案中,命名空間為std,因此使用的時候都要加上標頭檔案和命名空間。

輸出相對來說簡單一些,不會出現輸入的一些問題,相反,cout輸出有時候還可以幫助你解決題目,一下列舉一些常見輸出語句:

//輸入乙個數字再輸出

int num;//定義

cin>>num;//輸入

cout<>input;//輸入

cout<>num1>>s1;

cin>>num2>>s2;

cout《牛客網刷題應該對於網際網路求職者來說必不可少,因為很多公司都用的這個線上系統,因而用到了其刷題的系統。

實際手撕**就是一片空白的場景下自己寫標頭檔案,寫命名空間,寫輸入輸出等,很多人在實際筆試或者面試時都吃了輸入輸出的虧,所以這個還是要平時多練習,多總結,把一些常見的輸入輸出格式都弄清楚很重要。

示例**:

#include using namespace std;

int main()

**:備忘學習

leetcode演算法題,常用標頭檔案:

#include #include //基本輸入流

#include //基本輸出流

#include #include #include #include #include #include //stl佇列容器

#include //stl 集合容器

#include //stl 堆疊容器

#include //stl map容器

using namespace std;

還有可以一次行包含所有c++標頭檔案的方式:

#include

c++ 常用資料結構和操作:

牛客網python輸入輸出格式

用python刷題 問題 卡在了輸入上 輸入注意 測試用例都是以行的形式輸入的,為了可以正確的讀到測試用例,用python讀取數字時 map int,sys.stdin.readline strip split 牛客網中寫 和用編譯器寫 一樣,所有的格式都需要自己敲,這是和力扣的最大區別 貼上乙個已...

20 05 26 牛客網c 的輸入輸出

必要的兩行 include using namespace std cout標準輸出流 cout value of str is str endl cin標準輸入流 cin name 比如這樣乙個輸入 題目描述 有 n 個學生站成一排,每個學生有乙個能力值,牛牛想從這 n 個學生中按照順序選取 k ...

牛客網程式設計題輸入輸出

求a b 前面四行都是一樣的 牛客網 readline 賽碼 read line var print console.log var readline require readline sync readline.setdefaultoptions var read line readline.pr...