- 算法訓練營:海量圖解+競賽刷題(入門篇)
- 陳小玉
- 836字
- 2021-07-23 18:16:30
1.9 巧用數組——好玩貪吃蛇
在程序設計中,數組可以存儲一組具有相同數據類型的數據。
1. 一維數組
1)靜態定義
一維數組的靜態定義如下圖所示。

常量表達式必須是整型常量,不能是變量,這個數值必須是已知的數值。
? 可以在定義時,對數組初始化。

? 定義并初始化時可以不指定長度。

? 在非定義時不可以整體賦值。

? 不可以在數組變量之間賦值。

? 系統不會檢查下標是否有效。

? 應該將特別大的數組定義在main()函數外,如果將其定義在main()函數內,就會異常退出。
訓練1-36:定義一些一維數組,并賦值、運算、輸出。

訓練1-37:輸入一些整數,并將其逆序輸出。

訓練1-38:現在有n盞燈,編號為1~n,開始時所有的燈都是關的,編號為1的人走過來,把編號是1的倍數的燈開關按下(開的關上,關的打開),編號為2的人把編號是2的倍數的燈開關按下,編號為3的人又把編號是3的倍數的燈開關按下……直到第k個人為止。
給定n和k(0<n,k≤1000),輸出哪幾盞燈是開著的。

訓練1-39:輸入n個學生的成績(整數)并將其存入數組中,求其總成績和平均成績(浮點數)。

訓練1-40:輸入n個學生的成績并將其存入數組中,求其最低分和最高分。

2)動態定義
在程序運行過程中動態分配空間定義數組。一維數組的動態定義如下圖所示。

使用new分配的數組,在使用完畢后需要使用delete釋放內存空間。

注意:
? 不要使用delete釋放不是new分配的內存;
? 不要使用delete釋放同一個內存塊兩次;
? 使用new為一個實體分配內存,需要使用delete釋放內存空間;
? 使用new為一個數組分配內存,需要使用delete[]釋放內存空間;
? 對空指針使用delete是安全的。
訓練1-41:輸入n個學生的成績并將其存入動態數組a[]中,統計不及格的人數。

2. 二維數組
1)靜態定義
二維數組的靜態定義如下圖所示。

常量表達式必須是整型常量,不能是變量,該數值必須是已知的數值。
? 可以在定義時,對數組初始化。

? 將二維數組作為參數時,可以省略第1維的長度,但必須指定第2維的長度。

2)動態定義
一個m行n列的二維數組相當于m個長度為n的一維數組。


訓練1-42:蛇形填數,輸入一個整數n,按照蛇形填寫n×n的矩陣。



- Kali Linux Web Penetration Testing Cookbook
- MySQL數據庫應用與管理 第2版
- Photoshop智能手機APP UI設計之道
- Hands-On Image Processing with Python
- Practical Internet of Things Security
- jQuery EasyUI網站開發實戰
- R語言游戲數據分析與挖掘
- Redis Essentials
- Mastering Python Networking
- SQL基礎教程(視頻教學版)
- Mastering openFrameworks:Creative Coding Demystified
- RESTful Java Web Services(Second Edition)
- 從零開始學Python網絡爬蟲
- Building Serverless Web Applications
- PHP動態網站開發實踐教程