C語言多組輸入使用方法
前言
我們學(xué)習(xí)C語言,從小白成長為大佬的的探險歷程,我們在這章將初步探索多組輸入這個知識關(guān)卡
一、什么是多組輸入?
在C語言中,"多組輸入"通常指的是從用戶處接收多個輸入值的情況。這些輸入值可以是不同的數(shù)據(jù)類型,例如整數(shù)、浮點數(shù)、字符等。
二、如何使用多組輸入
2.1,試題舉例講解
我們通過該題進行講解多組輸入:
2.2,錯誤解法
該解法只能通過僥幸的通過??途W(wǎng),但不是真正的符合該題的多組輸入的要求
//如果這樣寫,通過了很僥幸,因為題目要求多組輸入 //只能跑一組數(shù)據(jù),這個代碼只接收一組數(shù)據(jù),判斷完就就結(jié)束了 int main() { //輸入 int iq = 0; scanf("%d", &iq); //判斷 if (iq >= 140) { printf("Genius\n"); } return 0; }
2.3,我們實現(xiàn)多組輸入的思路
如何實現(xiàn)多組循環(huán)思路
多組輸入就是那多組數(shù)據(jù)去測試,不會只測試一組數(shù)據(jù),判斷完就結(jié)束
為了實現(xiàn)多組輸入,我們想讓這個代碼多組輸入,就要讓代碼循環(huán)起來
我們是不是要讓這個scanf接收一個數(shù)據(jù),判斷一下,然后在接收數(shù)據(jù),在判斷,如此循環(huán)下去。
我們寫一個while(),在while()判斷的條件的地方放上scanf("%d", &iq)
我們都知道,while循環(huán)是先執(zhí)行判斷語句
while循環(huán)判斷scanf,得到一個返回值,如果返回值為真的話,while循環(huán)就進來
正好你讀到了iq,while就判斷iq,直到我們這里讀取數(shù)據(jù)失敗,為假的時候就跳出循環(huán)
我們想要的拿scanf的返回值判斷的話,我們就要知道scanf的返回值是什么。
我們打開一個叫https://cplusplus.com/doc/tutorial/的網(wǎng)站
回到老版,然后輸入搜索scanf,然后我們可以看到scnaf的返回類型是int
返回的整型是什么呢,我們往下翻,可以看到一個Return Value,他的意思接收返回值
是描述的scanf的返回值相關(guān)的一個意思,這一段英文描述的是什么意思呢,
如果scanf讀取了幾個數(shù)字,就返回讀取到數(shù)字的個數(shù)
如果它返回1就是讀取正常了
2.4,第一種正確的解法
scanf 函數(shù)是輸入函數(shù)
函數(shù)的返回值是:int
如果讀取成功,返回的就是實際讀取到的數(shù)據(jù)的個數(shù)
如果函數(shù)讀取失敗,就返回EOF
非常簡單的寫法就是scanf == 1,scanf讀取到一個數(shù)字,如果返回值=1,就證明讀取正常,就進去判斷我們將使用代碼,注釋和運行結(jié)果圖來理解:
int main() { //輸入 int iq = 0; //scanf 函數(shù)是輸入函數(shù) //函數(shù)的返回值是:int // 如果讀取成功,返回的就是實際讀取到的數(shù)據(jù)的個數(shù) // 如果函數(shù)讀取失敗,就返回EOF //非常簡單的寫法就是scanf == 1,scanf讀取到一個數(shù)字,如果返回值=1,就證明讀取正常,就進去判斷 // while (scanf("%d", &iq) == 1) { //判斷 if (iq >= 140) { printf("Genius\n"); } } return 0; }
2.5,第二種正確的解法
scanf 函數(shù)是輸入函數(shù)
函數(shù)的返回值是:int
如果讀取成功,返回的就是實際讀取到的數(shù)據(jù)的個數(shù)
如果函數(shù)讀取失敗,就返回EOF,EOF的值-1
非常簡單的寫法就是scanf == 1,scanf讀取到一個數(shù)字,如果返回值=1,就證明讀取正常,就進去判斷
我們就去判斷如果scanf讀取一個整數(shù)的時候,發(fā)現(xiàn)沒有讀到,發(fā)現(xiàn)失敗了,就返回EOF如果返回的不是EOF,就是讀取成功了。就為真,不等于EOF所以為真
我們將使用代碼,注釋和運行結(jié)果圖來理解:
int main() { //輸入 int iq = 0; //scanf 函數(shù)是輸入函數(shù) //函數(shù)的返回值是:int // 如果讀取成功,返回的就是實際讀取到的數(shù)據(jù)的個數(shù) // 如果函數(shù)讀取失敗,就返回EOF,EOF的值-1 //非常簡單的寫法就是scanf == 1,scanf讀取到一個數(shù)字,如果返回值=1,就證明讀取正常,就進去判斷 //我們就去判斷如果scanf讀取一個整數(shù)的時候,發(fā)現(xiàn)沒有讀到,發(fā)現(xiàn)失敗了,就返回EOF while (scanf("%d", &iq) != EOF)//如果返回的不是EOF,就是讀取成功了。就為真,不等于EOF所以為真 { //判斷 if (iq >= 140) { printf("Genius\n"); } } return 0; }
2.6,多組輸入的第二種輸入方法
我們還可以這樣輸入,同樣while執(zhí)行的時候是讀取一個,判斷完,在讀取下一個
我們將使用代碼,注釋和運行結(jié)果圖來理解:
2.7,如何停止多組輸入
我們怎么停止這個代碼呢,
第一種方法就是ctrl+z就是可以停止
因為ctrl+Z可以讓scanf返回EOF
但是在vs2022上你會發(fā)現(xiàn)需要按三個ctrl+z,才能結(jié)束這個程序
這是vs的一個bug,其他的編譯器按一個ctrl+z就結(jié)束了
總結(jié)
以上就是今天要講的內(nèi)容,本文僅僅全面介紹了C語言的多組輸入問題,可以讓你在c語言的探險更加有趣,充實。
到此這篇關(guān)于C語言多組輸入使用方法的文章就介紹到這了,更多相關(guān)C語言多組輸入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C/C++代碼操作MySQL數(shù)據(jù)庫詳細步驟
這篇文章主要給大家介紹了關(guān)于C/C++代碼操作MySQL數(shù)據(jù)庫的相關(guān)資料,通過文中的這些示例,我們可以連接到MySQL數(shù)據(jù)庫,并執(zhí)行常見的數(shù)據(jù)庫操作,如創(chuàng)建表、插入數(shù)據(jù)和查詢數(shù)據(jù),需要的朋友可以參考下2023-12-12Clion2020.2.x最新激活碼破解版附安裝教程(Mac Linux Windows)
Clion2020增加了很多新特性,修復(fù)了大量bug,大大提高了開發(fā)效率。這篇文章主要介紹了Clion2020.2.x最新激活碼破解版附安裝教程(Mac Linux Windows),需要的朋友可以參考下2020-11-11通過stringstream實現(xiàn)常用的類型轉(zhuǎn)換實例代碼
在本篇文章里小編給大家分享了關(guān)于通過stringstream實現(xiàn)常用的類型轉(zhuǎn)換實例代碼內(nèi)容,需要的朋友們可以參考下。2020-04-04