網站首頁 編程語言 正文
??途W和LeetCode的競賽題中經常會遇到多行輸入,以前不熟悉這種寫程序的方式,初次接觸時輸入值會有很多問題。
多行輸入有下面這些常用方法:
一、未明確具體輸入行數
沒有確定的輸入行數時,一般要采用Ctrl+Z結束輸入,系統會自動輸入這些,我們要做的是設置好循環條件即可。
具體是每次輸入都產生結果還是所有輸入完以后再輸出結果要看題目要求。
如:輸入多個字符串,保存在二維數組中,可以采用以下兩種方式:
1、~scanf方式
? ?char str[10][10];//定義二維數組,保存多個字符串
? ? int i = 0;
? ? while (~scanf("%s", str[i]))
? ? {
? ? ? ? i++;
? ? }
這里每次敲下回車會結束一次輸入,循環進行一輪。
scanf函數的返回值為正確輸入的值的個數,如過沒有正確輸入,scanf返回值即為-1,對-1按位取反值為0,用于退出循環。
Windows平臺,用Ctrl+Z來表示輸入結束,有些編譯器需要連續按兩次或者三次Ctrl+Z,且每次都在行首。
2、EOF
End of file,文件結束符
char str[10][10];//定義二維數組,保存多個字符串
? ? int i = 0;
? ? while (scanf("%s", str[i])!=EOF)
? ? {
? ? ? ? i++;
? ? }
3、根據輸入元素的個數
char str[10][10];//定義二維數組,保存多個字符串
? ? int i = 0;
? ? while (scanf("%s", str[i])==1)//表示輸入一個元素時,循環進行
? ? {
? ? ? ? i++;
? ? }
這里的’1’代表的是要輸入的元素的個數,如果輸入元素個數不為1則循環結束。
二、已知具體輸入行數
知道輸入行數時,循環條件設為具體行數即可
? char str1[10][10];//定義二維數組,保存多個字符串
? ? ? ? int num = 10;
? ? ? ? int i = 0;
? ? while (num--)
? ? {
? ? ? ? scanf("%s", &str1[i]);
? ? ? ? i++;
? ? }
ps:
上面的輸入都是針對字符串來說的,而對于整型或浮點型數據來說,除了"\n"即回車以外,空格隔開也會自動結束一個數據的輸入。
造成這種區別的根本原因就是字符類型中原本就會有空格符,不能作為輸入結束的標志,而整型和浮點型可以。
int N = 0;
?? ?scanf("%d", &N);
?? ?for (int i = 1; i <= N; i++)
?? ?{
?? ??? ?scanf("%d %d %d", &first[i], &second[i], &third[i]);
?? ??? ?printf("%d %d %d", first[i], second[i], third[i]);
?? ?}
輸入和輸出:
無論使用空格還是換行符隔開,都不影響最終的結果。
總結
原文鏈接:https://blog.csdn.net/qq_44631587/article/details/121339227
- 上一篇:C語言如何實現循環輸入_C 語言
- 下一篇:C語言中雙鏈表的基本操作_C 語言
相關推薦
- 2022-08-30 cvc-complex-type.2.4.a: 發現了以元素 ‘base-extension‘ 開頭
- 2022-06-10 ASP.NET?Core為Ocelot網關配置Swagger_實用技巧
- 2023-08-28 react antd常見報錯Each child in a list should have a u
- 2022-04-12 python關閉print輸出信息詳情_python
- 2022-08-19 Python運行時修改業務SQL代碼_python
- 2024-04-03 clickhouse報Ports are not available
- 2022-08-27 DOS編寫腳本常用命令整理小結_DOS/BAT
- 2023-05-09 React組件三大核心屬性State?props?Refs介紹_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支