《零基礎看得懂的C語言入門教程 》——(九)C語言二維數組與循環嵌套

一、學習目標

  1. 了解二維數組的使用方法
  2. 了解循環嵌套的使用方法

目錄

C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。
第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那么難簡單開發帶你了解流程
第三篇:(三)輕輕松松理解第一個C語言程序
第四篇:(四)C語言的基本數據類型及變量
第五篇:(五)C語言的變量、常量及運算
第六篇:(六)輕輕松松了解C語言的邏輯運算
第七篇:(七)C語言的循環分分鐘上手
第八篇:(八)了解基本數組還不是那么簡單
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數真的很簡單
第十二篇:(十二)原來結構體是這么回事
第十三篇:(十三)socket服務端編寫

C語言新手的100個報錯解法

歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
在這里插入圖片描述

二、了解C語言的二維數組的使用方法

上一章我們學習了C語言的一位數組,知道了數組是相同類型值的集合,這一節學習C語言的二維數組。

一維數組可以當成是一排的數據,在這里我使用排隊作為舉例,在排隊時只有一橫排,沒有縱列我們可以當成一維數組;這個時候隊伍是一條線,只有橫排的同學,例如第一個名叫小明、第二個叫小黃、第三個叫小綠一共有十個同學。
在這里插入圖片描述
在數組中,是從0開始數數,第一個為數組名加一個下標0,如數組a寫成a[0]指代第一個小明,a[1]則表示小黃。當數組是兩排的時候該如何去進行表示呢?這個時候就需要二維數組了。依舊是用排隊作為例子,現在隊伍增加成兩排,每排十個人,第二排的第一個人該如何用數組表示呢?由于在數組中是使用0表示第一個數組元素,第二排第一個人則可以表示為 [1][0],其中一個[]表示一個維度,兩個[]則表示二維數組。再次強調,數組中第2排,從排數上來說是從0到1,0表示第一排那么1則表示第二排,所以第一個下標是1;由于是第二排的第一個元素,數組的元素0表示第一個,所以第二排第一個元素則可以表示為[1][0],假設數組名為a,那么則可以寫成a[1][0]

2.1 了解C語言中二維數組的使用方法
現在有一個數集{1,2,3,4,5,6,7,8,9,10}需要在C語言中使用二維數組表示可以寫成:

int a[2][5]={1,2,3,4,5,6,7,8,9,10};

以上代碼中 a[2][5] 表示數據有兩排(兩行),每行5個元素;之后的數據{1,2,3,4,5,6,7,8,9,10}將會分為2行存儲,第一行數據為1,2,3,4,5,第二行數據為 6,7,8,9,10。取第二行第3個數據可以寫為 a[1][2],取第一行第2個數據可以寫成a[0][1]

使用以下代碼嘗試獲取數組的值:

#include<stdio.h>
void main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};printf("a[0][1]的值是%d\n",a[0][1]);printf("a[0][2]的值是%d\n",a[0][2]);printf("a[1][0]的值是%d\n",a[1][0]);
}

結果如下:
在這里插入圖片描述
二維數組也可以進行值的更改,如下代碼:

#include<stdio.h>
void main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};printf("a[0][1]的值是%d\n",a[0][1]);a[0][1]=1111; printf("a[0][1]更改后的值是%d\n",a[0][1]);
}

運行結果為:
在這里插入圖片描述

三、了解嵌套循環及二維數組的綜合使用

嵌套循環時指循環的代碼中含有循環代碼,如for循環內也有一個for循環。

3.1了解循環嵌套的使用方法
假設兩個for循環進行嵌套,外部的for循環跳出的條件是i<5,i初始值是0,外部的循環則會循環5次;內部的for循環的循環條件為j<5,j初始值為0。那么當外面循環1次那么內部的for循環就會循環5次;外部循環則需要條件不成立的時候才能跳出來,循環1次明顯不滿足跳出的情況還將繼續循環;這是就會造成外部for循環一次,里面循環5次。我們用例子看看,演示代碼如下:

#include<stdio.h>
void main()
{int i,j; for(i=0;i<5;i++) {for(j=0;j<5;j++) {printf("外面一個循環的i的值是%d,里面for循環j的值是%d\n",i,j); }printf("\n");}
}

以上代碼定義了兩個變量,一個是i,另一個是j。i與j在for循環內進行了初始化,i=0;與j=0;,這句代碼在執行整個循環時,只執行一次,除非再次從頭開始循環,這段代碼將會再次執行。外部for循環與內部for循環條件一致,均是循環變量小于5,只是循環變量不同,由于循環時,循環變量會增加,由于循環嵌套,外部循環執行1次,則內部循環將會執行5次,我們可以查看以下結果直觀的查看。

運行結果如下:
在這里插入圖片描述
3.2 了解循環嵌套與二維數組的綜合使用
上一小節中,我們得知循環嵌套會導致外部循環執行一次,內部循環會執行多次的情況。得知了這個特性后,我們可以使用循環嵌套獲取二維數組的所有值。

假設有一個二維數組為2行,每行的元素為5個,我們獲取第一行的元素是[0][1],[0][2],[0][3],[0][4],[0][5],,我們可以明顯的發現,第一維下標并不會發生改變,而是第二位的下標逐個加1,那么可以使用循環嵌套取得所有的值,代碼如下:

#include<stdio.h>
void main()
{int a[2][5]={1,2,3,4,5,6,7,8,9,10};int i,j;for(i=0;i<2;i++){for(j=0;j<5;j++){printf("array[%d][%d]的值是%d\n",i,j,a[i][j]);}}
}

以上代碼中,外部循環的內容為i小于2,每次加1,內部循環的j小于5,每次加1,那么外部循環執行一次內部循環則會執行5次。外部循環的i為0時,內不循環執行第一次則為a[0][0] 第二次則為 a[0][1],我們將變量i和j當作a數組的下標,這時將會獲取所有的二維數組值。

結果如下:
在這里插入圖片描述

四、總結

通過以上描述與講解,我們了解了以下幾點內容:

  1. 了解了二維數組的取值
  2. 了解循環嵌套的使用方法
  3. 了解綜合使用循環嵌套獲取二維數組的值

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

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

相關文章

LRU算法

1 LRU算法 LRU(Least recently used,最近最少使用)根據數據的歷史訪問記錄來進行淘汰數據,思想是“如果數據最近被訪問過,那么將來被訪問的幾率也更高”。 2 具體實現過程 新數據插入到鏈表頭部; 每當緩存命中(即緩存數據被訪問),則將數據移到鏈表頭部; 當鏈表滿…

Scala-2.13.0 安裝及配置

Scala 簡介 Scala 是一門多范式&#xff08;multi-paradigm&#xff09;的編程語言&#xff0c;設計初衷是要集成面向對象編程和函數式編程的各種特性。 Scala 運行在Java虛擬機上&#xff0c;并兼容現有的Java程序。 Scala 源代碼被編譯成Java字節碼&#xff0c;所以它可以運…

檢測python進程是否存活

crontab -e */3 * * * * /data/log_realtime/check.sh > /data/log_realtime/check.log 2>&1 1 0 1 * * /data/jx3log_import_realtime/shutdown.sh 說明&#xff1a;每3分鐘檢查一次進程是否存在&#xff0c;每個月1號0點1分殺掉進程&#xff0c;重啟 check.sh cd …

中科大鏡像源_JETPACK4.4安裝軟件和備份鏡像的方法介紹

一、使用SDK Manager的文件夾安裝Jetson軟件(以NX為例)當JETPACK安裝出現錯誤的時候&#xff0c;可以嘗試下面的安裝辦法&#xff0c;前提是JETPACK4.4完整安裝(即本文第三節的下載已經完成)&#xff0c;并且選擇JETSON NX的相關的下載已經完成。安裝步驟&#xff1a;1、$cd /n…

站在前人的肩膀上重新透視C# SpanT數據結構

先談一下我對Span的看法&#xff0c; Span是指向任意連續內存空間的類型安全、內存安全的視圖&#xff0c;可操作的滑動窗口。Span和Memory都是包裝了可以在pipeline上使用的結構化數據的內存緩沖器,他們被設計用于在pipeline中高效傳遞數據。定語解讀這里面許多定語&#xff0…

集合學習

List集合&#xff1a;ArrayList集合基于動態數組結構&#xff0c;查詢優&#xff0c;LinkedList 基于鏈表結構 數據移動優。是一個有序的隊列集合 set集合&#xff1a;HashSet和TreeSet 。是一個無序不重復集合 Map集合&#xff1a;HashMap和TreeMap。是一個KEY-VALUE映射的集合…

《零基礎看得懂的C語言入門教程 》——(十)C語言的指針原來是這樣

一、學習目標 了解指針的概念了解指針的使用方法了解雙重指針 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xff1a;&#xff08;二&#xff09;C語言沒那…

T-SQL編程基礎之一:變量與基本語句

一個標準的計算機語言,大概要提供的必要主要功能是:變量說明、分支判斷、循環和輸入輸出結果。T-SQL也一樣,具有這些功能,只不過T-SQL的輸入和輸出不是界面,而是表。 完全精確描述一個計算機語言,大概要很厚的書才能做到,好在目前這些書籍的發行也很多,許多書描述的都…

Java之volatile如何保證可見性和指令重排序

1 我們先了解CPU緩存 CPU緩存為了解決CPU運算速度與內存讀寫速度不匹配的問題&#xff0c;因為CPU運算速度要比內存讀寫速度快得多 一次主內存的訪問通常在幾十到幾百個時鐘周期一次L1高速緩存的讀寫只需要1~2個時鐘周期一次L2高速緩存的讀寫也只需要數十個時鐘周期 CPU大多數…

bigpipe提升網站響應速度

2019獨角獸企業重金招聘Python工程師標準>>> 主要思想就是通過異步 發起一次請求&#xff0c;后端不關閉輸出流&#xff0c;多個線程處理各自任務&#xff0c;然后分別發送到客戶端。 https://github.com/4rnold/Demo-Project/tree/master/bigpipe-demohttps://gith…

mysql 添加用戶_mysql創建用戶與授權

一、創建用戶CREATE USER usernamehost IDENTIFIED BY password;說明username&#xff1a;你將創建的用戶名host&#xff1a;指定該用戶在哪個主機上可以登陸&#xff0c;如果是本地用戶可用localhost&#xff0c;如果想讓該用戶可以從任意遠程主機登陸&#xff0c;可以使用通配…

《零基礎看得懂的C語言入門教程 》——(十一)C語言自定義函數真的很簡單

一、學習目標 了解C語言的自定義函數的使用方法了解C語言自定義函數的傳參了解C語言自定義函數的返回值 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xf…

T-SQL編程基礎之二:條件選擇、循環編程

1. 條件判斷以及GOTO語句 條件判斷是計算機語言的重要功能,在T-SQL中,條件判斷的語句是: if 條件 … else … 或者是: if 條件 … 注意寫法和C類似,但條件描述不使用()也可以。如果是在一個條件里執行多條語句,則要構造復合語句,復合語句是在BEGIN…EDN中構造…

**【ci框架】精通CodeIgniter框架

http://blog.csdn.net/yanhui_wei/article/details/25803945 一、大綱 [php] view plaincopy1、codeigniter框架的授課內容安排 2、codeigniter框架的簡介 |-----關于框架的概念 |-----使用CI框架的好處 |-----為什么選擇CI框架 3、codeigniter框架…

AspNetCore開源中間件-VueRouterHistory

前言用過VueRouter路由組件的應該都知道&#xff0c;VueRouter有hash和history兩種模式。hash模式會在url中插入#&#xff0c;history模式下url則看上去更加簡潔美觀。如果想要支持history模式則必須要后端服務進行配合。常用后端服務器配置方式請參考 后端配置例子后端配置例子…

T-SQL編程基礎之三:游標(Cursor)編程

SQL是一種面向集合操作的語言,大多情況下,一個SQL語句將會操作數據庫表里的很多數據,基本上,一個數據庫的程序員腦子里應該想的是如何整體操作一個表或者是幾個表。 但也有一些情況下,試圖整表操作是不現實的,需要一行一行處理數據,這種情況下,SQL語言提供了所謂游標的…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(一)既然你選擇了這系列教程那么我就要讓你聽得懂

一、前言 幾個月前編寫了一份python語言入門的博文&#xff0c;近期重新審閱了一遍發現編寫的質量太過隨意&#xff0c;可能對于一部分人并不是非常友好&#xff0c;故此重新編寫Python語言的零基礎教程。 本篇教程將會盡量把一些專業術語給讀者講解清楚&#xff0c;并且讓讀…

centos 7下安裝mysql_Centos7下安裝MySQL5.7(數據庫的最全安裝方法)

Centos7下使用yum安裝mysql數據庫首先Centox7已經不支持mysql&#xff0c;因為收費了你懂得&#xff0c;所以內部集成了mariadb&#xff0c;而安裝mysql的話會和mariadb的文件沖突&#xff0c;所以需要先卸載掉mariadb。由于確定使用mysql&#xff0c;那只有卸載mariadb了。一、…

環形隊列

在網上看到一篇比較好的介紹隊列的文章&#xff0c;地址為&#xff1a;http://www.cnblogs.com/kubixuesheng/p/4104802.html 特此感謝原創作者&#xff0c;以下均為摘抄。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、…

HTTP1.0、HTTP1.1 、SPDY、HTTP2.0之演變過程和優化

一、協議的演變過程和時間 HTTP1.0(1996年) -> HTTP1.1(1999年) -> SPDY(2012年google提出了SPDY的方案) -> HTTP2.0(2013年8月進行首次合作共事性測試) 二、影響一個HTTP網絡請求的因素 主要有兩個:帶寬和延遲 1)帶寬:網絡基礎建設已經使得帶寬得到極大的提升…