Giáo trình ngôn ngữ C


Kiểu_mảng tên_mảng [ ] = {gt_0, gt_1,..,gt_k}



tải về 2.34 Mb.
Chế độ xem pdf
trang46/62
Chuyển đổi dữ liệu16.03.2023
Kích2.34 Mb.
#54376
1   ...   42   43   44   45   46   47   48   49   ...   62
C ĐHQGHN

Kiểu_mảng tên_mảng [ ] = {gt_0, gt_1,..,gt_k}; 
 Trong 
đó các thành phần Kiểu_mảng , tên_mảng, số_phần_tử như trong phần 
định nghĩa (V.1). gt_0, gt_1,.., gt_k là các giá trị khởi đầu (gọi là bộ khởi đầu) cho các 
phần tử tương ứng của mảng, tức là gán tuần tự các giá trị trong bộ khởi đầu cho các 
phần tử của mảng từ trái qua phải. 
Trong dạng thứ nhất, số giá trị trong bôn khởi đầu chỉ có thể <= số phần tử của mảng 
(k 
≤ số_phần_tử). Khi đó những phần tử mảng thừa ra (không có giá trị khởi đầu) sẽ tự 
động được gán bằng 0 (trong trường hợp mảng số, nếu là con trỏ sẽ là NULL (rỗng) ). 
Ví dụ: 
int 
a[3] 
={ 
1,3,4}; 
thì 
giá 
trị của a[0] là 1, a[1] là 3, a[2] là 4. 


Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
 C
67
int 
b[5] 
={1,2}; thì giá trị của b[0] là 1, b[1] là 2, b[3]=b[4] là 0.
với mảng các ký tự hoặc xâu ký tự thì có hai cách khởi đầu như sau 
char 
c[4] 
={‘a’,’b’,’c’ 
}; 
// 
c[0] 
là 
‘a’, c[1] là ‘b’, c[2] là ‘c’, c[3] là ‘\0’ 
char 
s[10] 
=”ABC”; 
// 
tương đương với char s[10] ={‘A’,’B’,’C’,’\0’} 
(nếu số giá trị trong bộ khởi đầu > số phần tử mảng chương trình dịch sẽ báo lỗi)
 
Trong dạng thứ hai, chúng ta không xác định số phần tử của mảng, trong trường hợp 
này chương trình biên dịch sẽ tự động xác định kích thước (số phần tử) của mảng theo số 
giá trị trong bộ khởi đầu. 
 Ví 
dụ: 

int a[] ={1,3,4};
thì a là mảng có 3 phần tử, giá trị của a[0] là 1, a[1] là 3, a[2] là 4.
V.2.4 - Một số ví dụ 
 
Ví dụ V.1: Chương trình nhập một mảng A có n phần tử kiểu nguyên , n<=20 nhập từ 
bàn phím, in các phần tử của mảng theo trật tự xuôi, ngược (theo thứ tự chỉ số). 
Giải: Trong chương trình chúng ta cần định nghĩa một mảng A có 20 phần tử kiểu int. 
Một biến nguyên n là số phần tử thực sự của A sẽ được nhập. Số nguyên n được nhập từ 
bàn phím phải thoả mãn 1<=n<=20. 
Các 
phần tử A[i] (i=0,1,.,n-1) của A được nhập từ bàn phím tương tự như các biến đơn 
bằng câu lệnh (hàm) scanf: scanf(“%d”,&A[i]).
Và được in ra bằng hàm printf, như sau printf (“%d ”, A[i]), nếu ta sử dụng vòng lặp 
với i từ 0 tới n-1 ta được các phần tử theo trật tự xuôi của chỉ số: 
for(i=0; iprintf("%d, ",A[i]); 
ngược lại các bạn cho chạy theo thứ tự từ n-1 tới 0 chúng sẽ có các phần tử theo số thứ tự 
ngược 
for(i= n-1; i>=0; i--) 
printf("%d, ",A[i]); 
Chương trình minh hoạ như sau: 


Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
 C
68
#include  
#include  
void main(){ 
clrscr(); 
const int max =20; 
int A[max]; 
int n,i; 
do{ 
printf("\nNhap so phan tu mang = "); 
scanf("%d",&n); 
}while(n<1 || n>max); //nhập số pt mảng 1<=n<=max 
printf("\nNhap mang co %d phan tu \n",n); 
for(i=0; i
printf("A[%d]= ",i); 
scanf("%d",&A[i]); 

printf("\nCac phan tu mang theo thu tu xuoi la \n"); 
for(i=0; iprintf("%d, ",A[i]); 
printf("\nCac phan tu mang theo thu tu nguoc la \n"); 
for(i=n-1; i>=0; i--) 
printf("%d, ",A[i]); 
getch(); 

(Ví dụ V.1: chương trình nhập và in mảng) 

tải về 2.34 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   42   43   44   45   46   47   48   49   ...   62




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương