Mảng nhiều chiều 4 Bài tập

Một phần của tài liệu Bai giang Co So Lap Trinh docx (Trang 41 - 46)

- Hàm ngày tháng

3. Mảng nhiều chiều 4 Bài tập

4. Bài tập BT4_1: 1. Viết hàm nhập một mảng số nguyên gồm n phần tử. 2. Viết hàm in mảng số nguyên gồm n phần tử 3. Viết hàm tìm phần tử lớn nhất của mảng

4. Viết hàm tìm phần tử lớn nhất trong mảng (trả về giá trị và chỉ số). 5. Viết hàm tìm phần tử nhỏ nhất trong mảng (trả về giá trị và chỉ số). 6. Viết hàm in ra các số nguyên tố trong mảng

7. Viết hàm đếm các số nguyên tố trong mảng

8. Viết hàm trung bình cộng các số nguyên tố trong mảng 9. Viết hàm liệt kê các số chính phương trong mảng 10. Viết hàm sắp xếp mảng theo thứ tự tăng dần.

11. Viết hàm in ra các số lẻ theo thứ tự trị tuyệt đối tăng dần, các số chẵn theo thứ tự trị tuyệt đối giảm dần.

BT4_2: Viết chương trình nhập vào một mảng 1 chiều, sau đó tìm xem trong mảng có đoạn tăng nào có số phần tử nhiều nhất.

BT4_3: Viết chương trình nhập vào một mảng 1 chiều, sau đó tìm xem trong mảng có đoạn tăng nào có tổng lớn nhất.

BT4_4: Viết chương trình nhập vào mảng 1 chiều có n phần tử (có thể dùng hàm randomize cho nhanh) sau đó xuất ra phần tử nào xuất hiện trong mảng nhiều nhất và xuất hiện bao nhiêu lần.

BT4_5: Cho mảng số nguyên độ dài n. - In ra mảng con các phần tử dương dài nhất - In ra mảng con có tổng lớn nhất.

BT4_6: Viết chương trình gán giá trị ngẫu nhiên cho N phần tử của mảng A. 1. Hiển thị các phần tử của mảng A.

2. Sắp xếp mảng theo chiều tăng dần.

3. Chia mảng ra thành 2 mảng con trong đó có 1 mảng (B) các số dương và 1 mảng (C) các số âm.

4. Xoá một phần tử thứ i trong mảng C

5. Chèn thêm số x vào mảng C với x nhập từ bàn phím sao cho mảng C vẫn là mảng các số dương tăng dần.

6. Viết hàm đếm số nguyên x xuất hiện trong mảng A (x nhập vào từ bàn phím). 7. Tìm xem đoạn tăng dần trong mảng A mà có số phần tử lớn nhất.

BT4_7: Viết chương trình

1. Nhập N số nguyên từ bàn phím (lưu vào mảng A) 2. Hiển thị các số nguyên đó ra màn hình

3. Chia N số nguyên đó thành 2 mảng: - Mảng B gồm các số nguyên âm - Mảng C gồm các số nguyên dương

4. Sắp xếp các phần tử trong mảng A theo chiều tăng dần

5. Chèn thêm một số nguyên a bất kỳ từ bàn phím vào mảng A mà vẫn đảm bảo tính tăng dần

6. Nhập một số nguyên a bất kỳ từ bàn phím và xoá tất cả các phần tử bằng a trong mảng A

7. Đếm số phần tử trong mảng A chia hết cho 3

8. Sửa tất cả các phần tử chia hết cho 3 trong mảng A thành 100.

Bài làm: BT4_7

#include<stdio.h> #include<conio.h>

static int A[100],B[100],C[100],N; int i,min,x,y; void Nhap(void) { for(i=0;i<N;i++) { printf("A[%d]=",i); scanf("%d",&A[i]); } }

void HienThi(int A[],int N) {

printf("\n");

for (int m=0; m<N; m++) printf("%4d",A[m]); }

//phuong phap sap xep chon void SapXep(void) { int i, j, index,tg; for(i=0;i<N;i++) { min=A[i]; index=i; for(j=i;j<N;j++) { if (A[j]<min)

{ //tim gia tri nho nhat trong mang con min=A[j];

index=j; //giu lai chi so cua phan tu duoc coi la min }

}

tg=A[i]; A[i]=A[index]; A[index]=tg; }

printf("\nMang A sap xep tang dan la: "); HienThi(A,N); } void ChiaMang(void) { int x=0;y=0; for(i=0;i<N;i++){ if(A[i]<0) {B[x]=A[i];x++;} if(A[i]>0) {C[y]=A[i];y++;} }

printf("\nMang B co %d phan tu la: ",x); HienThi(B,x);

printf("\nMang C co %d phan tu la: ",y); HienThi(C,y);

}

void Xoa(void) {

int a,k;

printf("\nNhap gia tri muon xoa a= "); scanf("%d",&a);

for(i=0;i<N;i++) if(A[i]==a) {

N--; }

printf("\nMang A sau khi xoa so %d la: \n",a); HienThi(A,N);

}

void Chen(void){ int a,k;

printf("\nBan muon chen so a= "); scanf("%d",&a); for(i=0;i<N;i++) { if(A[i]>a){ for(k=N;k>i;k--) A[k]=A[k-1]; A[i]=a; break; } } if (i==N) A[N]=a; N++;

printf("\nMang A sau khi chen so %d la: \n",a); HienThi(A,N); } void TimSoChiaHetCho3(void) { int x=0; for(i=0;i<N;i++) if(A[i]%3==0) x++;

printf("\nmang A co %d so chia het cho 3",x); }

void Sua(void) { for(i=0;i<N;i++)

if(A[i]%3==0) A[i]=100;

printf("\nDay A da sua cac phan tu chia het cho 3 la: \n"); HienThi(A,N);

}

void main(void) {

clrscr();

printf("Nhap so phan tu cua mang N= "); scanf("%d",&N); Nhap(); printf("\nMang A gom: "); HienThi(A,N); SapXep(); ChiaMang();

Xoa(); Chen();

TimSoChiaHetCho3(); Sua();

}II. Kiểu dữ liệu con trỏ 1. Khái niệm con trỏ

- Con trỏ là biến nhận giá trị có kiểu dữ liệu số nguyên - Khai báo:

int *tên_biến_con_trỏ;

ví dụ :

int *con_tro; //biến con trỏ có tên là con_tro

- Khi mới khai báo :

+ Biến con trỏ được đặt ở một ô nhớ có địa chỉ do máy tính quy định. + Biến con trỏ chưa có giá trị cụ thể

+ Biến con trỏ trỏ đến vùng nhớ không biết trước. Vì vậy, ta phải dùng lệnh gán :

<tên_biến_con_trỏ> = &<tên_biến> ;

Một phần của tài liệu Bai giang Co So Lap Trinh docx (Trang 41 - 46)

w