筆試輸入那些事兒

2021-08-07 10:25:13 字數 1929 閱讀 4379

最近一直在看一些筆試程式設計的題目,作為乙個程式設計菜鳥,很多時候都卡在了輸入輸出階段,收集整理一下,以備不時之需。 採取的程式語言是c++(很喜歡stl模板,比較省事,自己對與一些定義還不熟練吧)。

可以看到,同一般的輸入不同,這裡沒有給出有多少組測試用例,但是每個用例都是一行,so~

輸入:

string s;

while(cin>>s)

算是乙個比較簡略的處理方法,因為此時每行都沒有空格等特殊字元,並且一行為乙個測試用例

輸入描述:

第一行乙個數t(t ≤ 100),表示資料組數。對於每組資料,第一行兩個數n,k(1 ≤ n,k <=100),接下來一行有2n個數a1

,a2,

...,

a2n (1 ≤ ai

≤ 1000000000)。

輸出描述:

對於每組資料,輸出一行,最終的序列。數字之間用空格隔開,不要在行末輸出多餘的空格。

輸入例子:

3

3 1

1 2 3 4 5 6

3 2

1 2 3 4 5 6

2 2

1 1 1 1

輸出例子:

1 4 2 5 3 6

1 5 4 3 2 6

1 1 1 1

此時,我們對應的輸入可以是:

int t;//t組資料

int n,k;

cin>>t;

for(int i=0;icin>>n>>k;

vector

a(2*n);//初始化個數

for(int j=0;j<2*n;j++)

//下一步操作

}

這裡我們用到了vector這個物件,可以當成是乙個可變長度的陣列,如果陣列的大小不知道,利用vector還蠻方便。

此時的輸入為:

int m;

cin>>m;

vector

> a(m,vector

(m));

for(int i=0;ifor(int j=0;jcin>>a[i][j];}}

很多時候,輸入的陣列不僅時字串,還有整數,例如:

輸入描述:

一行整數序列,數字用空格分隔,如:1 4 -1 3 5 6 2

我一般採取的方法是:

int tmp;

vector

v;while(cin>>tmp)

當然還有更加複雜的情況,例如:

輸入第一行為整數序列,陣列用空格分隔,如:45 67 33 21

輸入第二行為乙個整數k,k在陣列長度範圍內,如:2

乙個可行的方式是:

char c;

int k,tmp;

vector

v;while((c=getchar())!='\n')

}cin>>k;

暫時就這些啦,之後再補

筆試的那些事兒(一)

今天學校組織了2011屆畢業生招聘會,到會公司有天津企業將近300家,非天津企業將近200家。雖然看數字挺龐大的,其實裡邊沒有多少好公司。去了以後有點後悔沒有籤富士康,這個就不提了。還是講講今天招聘會吧!早晨7點起床,洗漱完畢後,重新去列印了10份簡歷。8點坐649 學校比較偏,算是校車吧 去本部南...

鏈結那些事兒

鏈結,就是將不同部分的 和資料收集和組合成為乙個單一檔案的過程,這個檔案可被載入到儲存器中執行。鏈結可以執行於編譯時 compile time 也就是源 被翻譯成機器 時 eg.普通的鏈結器鏈結,以及靜態鏈結庫,由靜態鏈結器鏈結 也可以執行於載入時 例如動態鏈結庫的載入時鏈結 也可以執行於執行時 r...

指標那些事兒

1.野指標 也叫懸擺指標,迷失指標 野指標是導致bug的罪魁禍首之一。對指標呼叫delete後 釋放掉了它指向的記憶體,野指標還是指向原來的位址 如果沒有重新賦值就使用它,將導致難以預料的後果。因為此時操作野指標,它指向的記憶體位址可能已經分配給其他變數在使用了。所以指標在delete之後,如果不再...