杭電判斷能不能連著連吃不一樣的糖

2021-06-28 11:42:18 字數 3127 閱讀 4031

problem description

hoho,終於從speakless手上贏走了所有的糖果,是gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣;可是gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙計算一下。

input

第一行有乙個整數t,接下來t組資料,每組資料佔2行,第一行是乙個整數n(0#includeusing namespace std;

分類: linux基礎

c語言2013-01-25 20:46

1652人閱讀

收藏 舉報

scanf()

函式是格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。

其呼叫格式為:      scanf("格式化字串》",《位址表》);

格式化字串包括以下三類不同的字元;

1、 格式化說明符:

格式化說明符與printf()函式中的格式說明符基本相同。但和printf()函式中格式字串的用法有一些小區別。我們來看下面這個表。

格式字元                                           說明

%d                                              從鍵盤輸入十進位制整數

%o                                             從鍵盤輸入八進位制整數

%x                                             從鍵盤輸入十六進製制整數

%c                                             從鍵盤輸入乙個字元

%s                                              從鍵盤輸入乙個字串

%f                                             從鍵盤輸入乙個實數

%e                                             與%f的作用相同

附加格式說明字元表                                         

字元                                           說明

l                                            輸入"長"資料

h                                           輸入"短"資料

m                                           指定輸入資料所佔寬度

*                                           空讀乙個資料

2、   空白字元: 空白字元會使scanf()函式在讀操作中略去輸入中的乙個或多個空白字元。

3、   非空白字元: 乙個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

位址表是需要讀入的所有變數的位址,而不是變數本身。這與printf()函式完全不同,要特別注意。各個變數的位址之間同","分開。

首先我們來看一下格式化說明符「%d」,從鍵盤輸入乙個十進位制整數,當多個輸入時,採用乙個或多個空格做為分隔符,看下面的例子:

執行結果如下:

分析如下:

scanf格式化輸入中有多個空格和』\n』,但是我們採用的是%d格式化輸入,所以空格和』\n』等轉義字元是沒有讀入的,這裡有乙個」%*3d」,意思是跳過輸入的前三個整型數字,從第四個數字開始讀入,所以我們輸入「432432432」,輸出的卻是432432,而不是432432432.

有同學就要問了,為什麼輸入「432432432」後還有輸入乙個字母』d』呢?其實這個地方輸入任何乙個非空位元組都是可以的。因為scanf必須從緩衝區讀入乙個非空字元再回車才會重新整理緩衝區,這裡scanf已經把「432432432」讀入變數,緩衝區裡就為空了,所以必須輸入乙個非空位元組,這樣按回車才會結束scanf輸入。

好,下面我們來看」%c」,還是先寫乙個例子:

執行結果如下:

分析:這裡一目了然,採用「%c」輸入時,scanf不僅會讀入非空字元,遇到空字元他也會讀入。

再看乙個例子:

#include

void main()

本例表示scanf格式控制串"%c %c"之間有空格時, 輸入的資料之間可以有空格間隔。這時候我們應該這樣輸入』a』空格』b』。

下面看一下」%s」,遇到空格換行等轉義字元不讀入,

分析:這裡一目了然,採用「%c」輸入時,scanf不僅會讀入非空字元,遇到空字元他也會讀入。

再看乙個例子:

#include

void main()

本例表示scanf格式控制串"%c %c"之間有空格時, 輸入的資料之間可以有空格間隔。這時候我們應該這樣輸入』a』空格』b』。

下面看一下」%s」,遇到空格換行等轉義字元不讀入,

執行結果如下:

能不能,不再只是競賽?

其實作為一名蒟蒻應該是沒有資格來說這個的,而下午看了一系列的文章之後,我還是憋不住來寫這篇東西。感謝自家老媽,把這篇文章發到了我的手機上 一開始看到,我也是驚了一下,歐美已經開始工業革命4.0了?粗略一翻,看到一句話,這次不帶上中國,更是驚了一下。我想每個oier踏上這條路,並且堅持下去都會有乙個說...

測試能不能發文章

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦測試一下能不能使用 markdown和擴充套件markdown簡潔的語法 塊高亮 latex數學公式 uml序列圖和流程圖 離線寫部落格 匯入匯出markdown檔案 豐富的快捷鍵 markdown 是一種輕量...

試試能不能獲取積分

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...