C系列文章目錄
目錄
C系列文章目錄
一、什么是多組輸入?
二、如何使用多組輸入
2.1,試題舉例講解?
2.2,錯誤解法
2.3,我們實現多組輸入的思路
2.4,第一種正確的解法
2.5,第二種正確的解法
2.6,多組輸入的第二種輸入方法?
2.7,如何停止多組輸入?
總結
前言
我們學習C語言,從小白成長為大佬的的探險歷程,我們在這章將初步探索多組輸入這個知識關卡
一、什么是多組輸入?
在C語言中,"多組輸入"通常指的是從用戶處接收多個輸入值的情況。這些輸入值可以是不同的數據類型,例如整數、浮點數、字符等。
二、如何使用多組輸入
2.1,試題舉例講解?
我們通過該題進行講解多組輸入:
2.2,錯誤解法
該解法只能通過僥幸的通過牛客網,但不是真正的符合該題的多組輸入的要求
//如果這樣寫,通過了很僥幸,因為題目要求多組輸入
//只能跑一組數據,這個代碼只接收一組數據,判斷完就就結束了
int main()
{//輸入int iq = 0;scanf("%d", &iq);//判斷if (iq >= 140){printf("Genius\n");}return 0;
}
2.3,我們實現多組輸入的思路
如何實現多組循環思路
多組輸入就是那多組數據去測試,不會只測試一組數據,判斷完就結束
為了實現多組輸入,我們想讓這個代碼多組輸入,就要讓代碼循環起來
我們是不是要讓這個scanf接收一個數據,判斷一下,然后在接收數據,在判斷,如此循環下去。
我們寫一個while(),在while()判斷的條件的地方放上scanf("%d", &iq)
我們都知道,while循環是先執行判斷語句
while循環判斷scanf,得到一個返回值,如果返回值為真的話,while循環就進來
正好你讀到了iq,while就判斷iq,直到我們這里讀取數據失敗,為假的時候就跳出循環
我們想要的拿scanf的返回值判斷的話,我們就要知道scanf的返回值是什么。
我們打開一個叫https://cplusplus.com/doc/tutorial/的網站
回到老版,然后輸入搜索scanf,然后我們可以看到scnaf的返回類型是int
返回的整型是什么呢,我們往下翻,可以看到一個Return Value,他的意思接收返回值
是描述的scanf的返回值相關的一個意思,這一段英文描述的是什么意思呢,
如果scanf讀取了幾個數字,就返回讀取到數字的個數
?如果它返回1就是讀取正常了
2.4,第一種正確的解法
scanf 函數是輸入函數
函數的返回值是:int
如果讀取成功,返回的就是實際讀取到的數據的個數
如果函數讀取失敗,就返回EOF
非常簡單的寫法就是scanf == 1,scanf讀取到一個數字,如果返回值=1,就證明讀取正常,就進去判斷我們將使用代碼,注釋和運行結果圖來理解:
int main()
{//輸入int iq = 0;//scanf 函數是輸入函數//函數的返回值是:int// 如果讀取成功,返回的就是實際讀取到的數據的個數// 如果函數讀取失敗,就返回EOF//非常簡單的寫法就是scanf == 1,scanf讀取到一個數字,如果返回值=1,就證明讀取正常,就進去判斷//while (scanf("%d", &iq) == 1){//判斷if (iq >= 140){printf("Genius\n");}}return 0;
}
2.5,第二種正確的解法
scanf 函數是輸入函數
函數的返回值是:int
如果讀取成功,返回的就是實際讀取到的數據的個數
如果函數讀取失敗,就返回EOF,EOF的值-1
非常簡單的寫法就是scanf == 1,scanf讀取到一個數字,如果返回值=1,就證明讀取正常,就進去判斷
我們就去判斷如果scanf讀取一個整數的時候,發現沒有讀到,發現失敗了,就返回EOF如果返回的不是EOF,就是讀取成功了。就為真,不等于EOF所以為真 ? ??
我們將使用代碼,注釋和運行結果圖來理解:
int main()
{//輸入int iq = 0;//scanf 函數是輸入函數//函數的返回值是:int// 如果讀取成功,返回的就是實際讀取到的數據的個數// 如果函數讀取失敗,就返回EOF,EOF的值-1//非常簡單的寫法就是scanf == 1,scanf讀取到一個數字,如果返回值=1,就證明讀取正常,就進去判斷//我們就去判斷如果scanf讀取一個整數的時候,發現沒有讀到,發現失敗了,就返回EOFwhile (scanf("%d", &iq) != EOF)//如果返回的不是EOF,就是讀取成功了。就為真,不等于EOF所以為真 {//判斷if (iq >= 140){printf("Genius\n");}}return 0;
}
2.6,多組輸入的第二種輸入方法?
我們還可以這樣輸入,同樣while執行的時候是讀取一個,判斷完,在讀取下一個
我們將使用代碼,注釋和運行結果圖來理解:?
2.7,如何停止多組輸入?
我們怎么停止這個代碼呢,
第一種方法就是ctrl+z就是可以停止
因為ctrl+Z可以讓scanf返回EOF
但是在vs2022上你會發現需要按三個ctrl+z,才能結束這個程序
這是vs的一個bug,其他的編譯器按一個ctrl+z就結束了
總結
以上就是今天要講的內容,本文僅僅全面介紹了C語言的多組輸入問題,可以讓你在c語言的探險更加有趣,充實。