【C語言】多組輸入

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語言的探險更加有趣,充實。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164205.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python入門教程 | Python3 字典(dict)

Python3 字典 字典是另一種可變容器模型,且可存儲任意類型對象。 Python3中的字典是一種無序、可變、可迭代的數據結構,它由鍵(key)和對應的值(value)組成。字典在Python中被視為可變對象,這意…

ES ElasticSearch安裝、可視化工具kibana安裝

1、安裝ES docker run -d --name es9200 -e "discovery.typesingle-node" -p 9200:9200 elasticsearch:7.12.1訪問測試: http://域名:9200/ 2、安裝kibana對es進行可視化操作 執行命令 docker run -d --name kibana5601 -p 5601:5601 kibana:7.1.12.修…

如何實現在公網下使用navicat圖形化工具遠程連接本地內網的MariaDB數據庫

公網遠程連接MariaDB數據庫【cpolar內網穿透】 文章目錄 公網遠程連接MariaDB數據庫【cpolar內網穿透】1. 配置MariaDB數據庫1.1 安裝MariaDB數據庫1.2 測試局域網內遠程連接 2. 內網穿透2.1 創建隧道映射2.2 測試隨機地址公網遠程訪問3. 配置固定TCP端口地址3.1 保留一個固定的…

Redis深入理解-Socket連接建立流程以及文件事件處理機制

Redis Server 運行原理圖 Redis 服務器中 Socket 網絡建立以及文件事件模型 一個 redis 單機,可以抗幾百上千的并發,這里的并發指的就是同時可以有幾百個 client 對這個 redis server 發起請求,都需要去建立網絡連接,同時間可能會…

利用 docker 實現JMeter分布式壓測

為什么需要分布式? 在工作中經常需要對一些關鍵接口做高QPS的壓測,JMeter是由Java 語言開發,沒創建一個線程(虛擬用戶),JVM默認會為每個線程分配1M的堆棧內存空間。受限于單臺試壓機的配置很難實現太高的并…

YAML 深入解析:從語法到最佳實踐

什么是YAML YAML(YAML Ain’t Markup Language)是一種人類可讀的數據序列化語言。它的設計目標是使數據在不同編程語言之間交換和共享變得簡單。YAML采用了一種簡潔、直觀的語法,以易于閱讀和編寫的方式表示數據結構。 YAML廣泛應用于配置文…

【OpenCV實現圖像:制作酷炫的動畫效果】

文章目錄 概要生成背景圖添加點動畫添加文本顯示小結 概要 首先,通過導入必要的庫,包括NumPy用于數學運算和Matplotlib庫用于數據可視化。隨后,創建圖形和軸,初始化點的位置,以及編寫初始化函數和更新函數。 初始化函…

C語言歸并排序

以夢為馬,不負韶華 文章目錄 引入:實現原理問題引出:遞歸實現:迭代實現穩定性分析:總結: 引入: 如何將兩個有序數組(假設為升序)合并為一個有序數組? 雙指針…

yolov5/v7修改標簽和檢測框顯示【最全】

《記錄自己在使用yolov5遇到的一些問題》同時也供大家參考,如果對你們有幫助,希望大家可以給個點贊、收藏鼓勵下,非常感謝! 以自帶的一張圖片作為示例,yolov5(6.1版本)的初始檢測框應該是如下圖所示 修改線條粗細、隱藏標簽、隱…

EI論文故障識別程序:DBN深度置信/信念網絡的故障識別Matlab程序,數據由Excel導入,直接運行!

?適用平臺:Matlab2021b版及以上 本程序參考中文EI期刊《基于變分模態分解和改進灰狼算法優化深度置信網絡的自動轉換開關故障識別》中的深度置信網絡(Deep Belief Network,DBN)部分進行故障識別,程序注釋清晰&#x…

Python之學生信息管理系統

目錄 一、基礎界面實現 1、主函數 2、保持循環,獲取用戶需求 二、函數實現模塊功能 1、添加學生信息 2、刪除學生信息 3、修改學生信息 4、查找全部學生信息 5、退出系統 三、整合代碼 1、 完整代碼 2、完整實現過程 實現 打印功能菜單、添加學生信息、刪…

想自學軟件測試?一般人我還是勸你算了吧。。。

📢專注于分享軟件測試干貨內容,歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!📢交流討論:歡迎加入我們一起學習!📢資源分享:耗時200小時精選的「軟件測試」資…

<keep-alive>作用及用法

<keep-alive>是Vue.js的內置組件。它用于緩存具有相同組件樹的組件。當組件使用<keep-alive>包裹時&#xff0c;組件不會被銷毀&#xff0c;而是會緩存到內存中&#xff0c;等到下次再次渲染時&#xff0c;直接使用緩存中的組件實例。 <keep-alive>有以下幾…

【Linux】共享內存

文章目錄 一、共享內存的原理詳談共享內存的實現過程二、共享內存的接口函數1.shmget2. shmatshmdtshmctl 進程間使用共享內存通信三、共享內存的特性 關于代碼 一、共享內存的原理 共享內存是由操作系統維護和管理的一塊內存。 共享內存的本質是內核級的緩沖區。 一個進程向…

C語言精華題目錦集1

第一題 test.c文件中包括如下語句&#xff0c;文件中定義的四個變量中&#xff0c;是指針類型的是&#xff08;&#xff09;【多選】 #define INT_PTR int* typedef int* intptr; INT_PRT a,b; int_ptr c,d;A:a ?B:b ?C:c ?D:d #define是宏定義&#xff0c;此時在程序中IN…

SQLite3 數據庫學習(六):Qt 嵌入式 Web 服務器詳解

參考引用 SQLite 權威指南&#xff08;第二版&#xff09;SQLite3 入門 1. Apache 搭建 cgi 環境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服務器軟件 它可以運行在幾乎所有廣泛使用的計算機平臺上&#xff0c;由于其跨平臺和安全性被廣泛使用 1.2 具體搭建流程…

一、用戶管理

一、后端數據庫初始化 1.1 因為版本問題&#xff0c;始終報錯&#xff0c;按照報錯信息去查詢解決方案&#xff0c;無法解決 靈機一動&#xff1a; 網址&#xff1a; Spring Boot 3.0 升級 實戰踩坑記錄 - 掘金 (juejin.cn) &#xff11;.&#xff12; 個人配置【運行成功…

c++的三目運算符

C三目運算符增強 C中的三目運算符表達式返回的可以是一個變量&#xff0c;但是C語言中返回的是一個常量。 C語言中&#xff1a; void test05() { int a 10; int b 20; printf("%d\n", a < b ? a : b); //在C語言中三目運算符返回的是表達式的值&am…

Javascript每天一道算法題(十三)——最大子數組和_中等

文章目錄 動態規劃題三個重要步驟&#xff08;了解思路&#xff09;1、問題2、示例3、解決方法&#xff08;1&#xff09;方法1——動態規劃 總結 動態規劃題三個重要步驟&#xff08;了解思路&#xff09; &#xff08;1&#xff09;定義數組元素的含義 用一個數組來保存歷史數…

2020年06月 Scratch(三級)真題解析#中國電子學會#全國青少年軟件編程等級考試

Scratch等級考試(1~4級)全部真題?點這里 一、單選題(共25題,每題2分,共50分) 第1題 執行以下腳本后舞臺上的角色將 ? A:先克隆自身,克隆體出現后被刪除。 B:先克隆自身,克隆體出現后刪除本體。 C:克隆出自身后本體與克隆體同時被刪除。 D:克隆出自身后本體與克…