c0811g_ttdung Admin
Tổng số bài gửi : 54 Join date : 28/05/2009 Age : 34 Đến từ : HN-aptech
| Tiêu đề: Kiến thức Chung Về Mảng Thu May 28, 2009 11:41 am | |
| - Code:
-
[b]Khai báo mảng (declare)[/b] Khai báo mảng số int a[10]; double a[10];
Khai báo mảng chuỗi (khai báo kiểu) typedef char chuoi[50]; chuoi a[10];
Khai báo mảng sinh viên (cấu trúc trước) struct SinhVien { char ten[30]; int tuoi; double dtb; } typedef struct SinhVien sinhvien; sinhvien a[100];
Nhập giá trị cho mảng (input)
Nhập giá trị cho mảng nguyên printf("Nhap so phan tu:"); scanf("%d", &n); for(i=0; i
Nhập giá trị cho mảng chuỗi (dùng gets) printf("Nhap so phan tu:"); scanf("%d", &n); for(i=0; i
Nhập giá trị cho mảng sinh viên (phải viết hàm nhapSinhVien) printf("Nhap so phan tu:"); scanf("%d", &n); for(i=0; i In các phần tử trong mảng / lọc các phần tử (print / filter)
In danh sách các số nguyên for(i=0; i
In danh sách các số nguyên dương for(i=0; i 0) printf("%d\n", a[i]);
In danh sách các số nguyên tố (phải viết hàm nguyento) for(i=0; i
In danh sách các chuỗi for(i=0; i
In danh sách các chuỗi có độ dài lớn nhất (phải tìm độ dài lớn nhất trước) for(i=0; i
In danh sách các chuỗi chứa từ "van" for(i=0; i
In danh sách các chuỗi có độ dài chẵn for(i=0; i
In ra các sinh viên (phải viết hàm inSinhVien) for(i=0; i
In ra các sinh viên có điểm lớn hơn 5 for(i=0; i 5.0 ) inSinhVien(a[i]);
In ra các sinh viên trong tên chứa từ "anh" for(i=0; i
Sắp xếp mảng (sort)
Sắp xếp mảng số for(i=n; i>1; i--) for(k=0; k if( a[k] > a[k 1] ) { int t = a[k]; a[k] = a[k 1]; a[k 1] =t; }
Sắp xếp mảng số giảm dần (chỉ khác dấu so sánh)
Sắp xếp mảng số for(i=n; i>1; i--) for(k=0; k if( a[k] < a[k 1] ) { int t = a[k]; a[k] = a[k 1]; a[k 1] =t; }
Sắp xếp mảng chuỗi (phải dùng strcmp và strcpy) for(i=n; i>1; i--) for(k=0; k if( strcmp(a[k], a[k 1]) > 0 ) { string t; strcpy(t, a[k]); strcpy(a[k], a[k 1]); strcpy(a[k 1], t); }
Sắp xếp mảng sinh viên theo điểm (chỉ khác sắp xếp số ở chỗ dùng a[k].diem) for(i=n; i>1; i--) for(k=0; k if( a[k].diem > a[k 1].diem ) { sinhvien t = a[k]; a[k] = a[k 1]; a[k 1] =t; }
Sắp xếp mảng sinh viên theo tên (chỉ khác sắp xếp chuỗi ở chỗ dùng a[k].ten) for(i=n; i>1; i--) for(k=0; k if( strcmp(a[k].ten, a[k 1].ten) > 0 ) { sinhvien t = a[k]; a[k] = a[k 1]; a[k 1] =t; }
Kết nhập mảng (aggregation) Tính tổng các số trong mảng s = 0; for(i=0; iprintf("Tong cua cac so %d\n", s);
Tính tổng các số dương trong mảng s = 0; for(i=0; i 0) s = a[i]; printf("Tong cua cac so duong %d\n", s);
Tìm giá trị lớn nhất max = a[0]; for(i=0; i< a[i]) max = a[i]; printf("Gia tri lon nhat la %d\n", max);
Tìm vị trí mang giá trị lớn nhất (ví dụ 3 5 2 7 6 thì giá trị lớn nhất 7 nằm tại vị trí thứ 4) imax = 0; for(i=0; i< a[i]) imax = i; printf("Vi tri mang gia tri lon nhat la %d\n", imax); printf("Gia tri lon nhat la %d\n", a[imax]);
Tìm số có giá trị tuyệt đối lớn nhất (ví dụ -9 7 2 -5 3 thì số lớn nhất là 7 nhưng số có giá trị tuyệt đối lớn nhất là -9) imax = 0; for(i=0; i< abs(a[i]) ) imax = i; printf("So co gia tri tuyet doi lon nhat la %d\n", a[imax]); printf("So nam tai vi tri la %d\n", imax);
Tìm giá trị âm lớn nhất (tìm trong tập con của mảng) timthay = 0; for(i=0; i< 0) { if(timthay == 0) max = a[i]; timthay ; if(max < a[i]) max = a[i]; } if (timthay==0) printf("Khong tim thay so am\n"); else printf("Tim thay so am lon nhat la %d\n", max);
Tìm chuỗi có độ dài lớn nhất max = strlen( a[0]); for(i=0; i< strlen(a[i]) ) max = strlen( a[i]); printf("Gia tri lon nhat la %d\n", max);
Tìm sinh viên có điểm cao nhất max = a[0].diem; for(i=0; i< a[i].diem ) max = a[i].diem; printf("Gia tri lon nhat la %d\n", max);
Đếm số các số dương dem = 0; for(i=0; i 0 ) dem ; printf("So phan tu dem duoc la %d\n", dem);
Đếm số các chuỗi có từ "van" dem = 0; for(i=0; i printf("So phan tu dem duoc la %d\n", dem);
Đếm số các sinh viên đạt điểm giỏi dem = 0; for(i=0; i = 8.0 ) dem ; printf("So phan tu dem duoc la %d\n", dem);
Đếm số các sinh viên có tên chứa chữ "anh" dem = 0; for(i=0; i printf("So phan tu dem duoc la %d\n", dem); | |
|