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