Professional Documents
Culture Documents
Chng VI
KIU MNG
II.1. Khai bo
II.1.1. Khai bo mng vi s phn t xc nh (khai bo tng minh)
C php: <Kiu> <Tn mng ><[s phn t]>
ngha:
- Tn mng: y l mt ci tn t ng theo quy tc t tn ca danh biu. Tn ny
cng mang ngha l tn bin mng.
- S phn t: l mt hng s nguyn, cho bit s lng phn t ti a trong mng l
bao nhiu (hay ni khc i kch thc ca mng l g).
- Kiu: mi phn t ca mng c d liu thuc kiu g.
- y, ta khai bo mt bin mng gm c s phn t phn t, phn t th nht l
tn mng [0], phn t cui cng l tn mng[s phn t -1]
Trang 72
Lp trnh cn bn
V d:
int a[10];
/* Khai bo bin mng tn a, phn t th nht l a[0], phn t
cui cng l a[9].*/
Ta c th coi mng a l mt dy lin tip cc phn t trong b nh nh sau:
V tr
0
1
2
3
4
5
6
7
8
9
Tn phn t
a[0] a[1] a[2]
Hnh 1: Hnh nh mng a trong b nh
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
a[9]
Trang 73
Lp trnh cn bn
Trang 74
Lp trnh cn bn
void InMang(int a[], int N)
{
int i;
for (i=0; i<N;i++)
printf("%d ",a[i]);
printf("\n");
}
void SapXep(int a[], int N)
{
int t,i;
for(i=0;i<N-1;i++)
for(int j=i+1;j<N;j++)
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int main()
{
int b[20], N;
printf("So phan tu thuc te cua mang N= ");
scanf("%d",&N);
Nhap(b,N);
printf("Mang vua nhap: ");
InMang(b,N);
SapXep(b,N); /* Gi hm sp xp*/
printf("Mang sau khi sap xep: ");
InMang(b,N);
getch();
return 0;
}
Trang 75
Lp trnh cn bn
III.1 Khai bo
III.1.1. Khai bo mng 2 chiu tng minh
C php:
<Kiu> <Tn mng><[S phn t chiu 1]><[S phn t chiu 2]>
V d: Ngi ta cn lu tr thng tin ca mt ma trn gm cc s thc. Lc ny
ta c th khai bo mt mng 2 chiu nh sau:
float m[8][9]; /* Khai bo mng 2 chiu c 8*9 phn t l s thc*/
Trong trng hp ny, ta khai bo cho mt ma trn c ti a l 8 dng, mi
dng c ti a l 9 ct. Hnh nh ca ma trn ny c cho trong hnh 2:
Dng\Ct
0
1
2
3
4
5
6
7
m[0][0]
m[1][0]
m[2][0]
m[3][0]
m[4][0]
m[5][0]
m[6][0]
m[7][0]
m[0][1]
m[1][1]
m[2][1]
m[3][1]
m[4][1]
m[5][1]
m[6][1]
m[7][1]
m[0][2]
m[1][2]
m[2][2]
m[3][2]
m[4][2]
m[5][2]
m[6][2]
m[7][2]
m[0][3]
m[1][3]
m[2][3]
m[3][3]
m[4][3]
m[5][3]
m[6][3]
m[7][3]
m[0][4]
m[1][4]
m[2][4]
m[3][4]
m[4][4]
m[5][4]
m[6][4]
m[7][4]
m[0][5]
m[1][5]
m[2][5]
m[3][5]
m[4][5]
m[5][5]
m[6][5]
m[7][5]
m[0][6]
m[1][6]
m[2][6]
m[3][6]
m[4][6]
m[5][6]
m[6][6]
m[7][6]
m[0][7]
m[1][7]
m[2][7]
m[3][7]
m[4][7]
m[5][7]
m[6][7]
m[7][7]
m[0][8]
m[1][8]
m[2][8]
m[3][8]
m[4][8]
m[5][8]
m[6][8]
m[7][8]
Trang 76
Lp trnh cn bn
for(j=0; j<N; j++){
printf("Phan tu o dong %d cot %d: ",i,j);
scanf("%d",&a[i][j]);
}
}
void InMaTran(int a[][10], int M, int N)
{
int i,j;
for(i=0;i<M;i++){
for(j=0; j< N; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
/* Cong 2 ma tran A & B ket qua la ma tran C*/
void CongMaTran(int a[][10],int b[][10],int M,int N,int c[][10]){
int i,j;
for(i=0;i<M;i++)
for(j=0; j<N; j++)
c[i][j]=a[i][j]+b[i][j];
}
int main()
{
int a[10][10], b[10][10], M, N;
int c[10][10];/* Ma tran tong*/
printf("So dong M= "); scanf("%d",&M);
printf("So cot M= "); scanf("%d",&N);
printf("Nhap ma tran A\n");
Nhap(a,M,N);
printf("Nhap ma tran B\n");
Nhap(b,M,N);
printf("Ma tran A: \n");
InMaTran(a,M,N);
printf("Ma tran B: \n");
InMaTran(b,M,N);
CongMaTran(a,b,M,N,c);
printf("Ma tran tong C:\n");
InMaTran(c,M,N);
getch();
return 0;
}
Trang 77
Lp trnh cn bn
printf("Ma tran co bao nhieu dong? ");scanf("%d",&M);
printf("Ma tran co bao nhieu cot? ");scanf("%d",&N);
for(i=0;i<M;i++)
for(j=0; j<N; j++)
{
printf("Phan tu o dong %d cot %d: ",i,j);
scanf("%f",&a[i][j]);
}
printf("Ma tran vua nhap: \n");
for(i=0;i<M;i++)
{
for(j=0; j< N; j++)
printf("%.2f
",a[i][j]);
printf("\n");
}
Min=(M>N) ? N: M; /* Tm gi tr nh nht ca M & N*/
for(i=0;i<Min;i++)
T=T+a[i][i];
printf("Tong cac phan tu o duong cheo chinh la: %f",T);
getch();
return 0;
}
IV. BI TP
IV.1 Mc ch yu cu
Lm quen vi kiu d liu c cu trc trong C, kiu mng. Thc hin cc bi tp trong
phn ni dung bng cch kt hp kiu d liu mng, cc kiu d liu hc v cc phn
hc trong cc bi tp trc.
IV.2 Ni dung
1. Vit chng trnh nhp vo mt dy n s thc a[0], a[1],..., a[n-1], sp xp dy s theo th
t t ln n nh. In dy s sau khi sp xp.
2. Vit chng trnh sp xp mt mng theo th t tng dn sau khi loi b cc phn t
trng nhau.
3. Vit chng trnh nhp vo mt mng, hy xut ra mn hnh:
- Phn t ln nht ca mng.
- Phn t nh nht ca mng.
- Tnh tng ca cc phn t trong mng .
4. Vit chng trnh nhp vo mt dy cc s theo th t tng, nu nhp sai quy cch th yu
cu nhp li. In dy s sau khi nhp xong. Nhp thm mt s mi v chn s vo dy
c sao cho dy vn m bo th t tng. In li dy s kim tra.
5. Vit chng trnh nhp vo mt ma trn (mng hai chiu) cc s nguyn, gm m hng, n
ct. In ma trn ln mn hnh. Nhp mt s nguyn khc vo v xt xem c phn t no ca
ma trn trng vi s ny khng ? v tr no ? C bao nhiu phn t ?
Trang 78
Lp trnh cn bn
6. Vit chng trnh chuyn i v tr t dng thnh ct ca mt ma trn (ma trn chuyn
v) vung 4 hng 4 ct. Sau vit cho ma trn tng qut cp m*n.
V d:
1
2
9
1
2
5
4
5
3
5
2
8
4
8
0
6
1 2 9 1
2 5 4 5
3 5 2 8
4 8 0 6
Trang 79