Chuyên đề mảng 1 chiều phần 2 ppsx

23 616 2
Chuyên đề mảng 1 chiều phần 2 ppsx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các bài tập tìm kiếm và liệt kê 176/Liệt kê các số âm trong mảng số thực . void xuatkq(float a[],int m) { for (int i=0;i<m;i++) { if (a[i]<0) printf(" %.2f ", a[i]); } } 177/ Liệt kê các số trong mảng thực thuộc [x,y] cho trước . void LietKetTrongDoanXY(float a[], int n, float x, float y) { for (int i=0; i<n; i++) { if (x<=a[i] && a[i]<=y) { printf(“% .2f",a[i]); } } } 178 Liệt kê các số chẵn trong mảng nguyên thuộc [x,y] . void LietKetChanTrongDoanXY(int a[], int n, int x, int y) { for (int i=0; i<n; i++) { if (a[i]%2 == 0 &&x<=a[i] && a[i]<=y) { printf(“%4d",a[i]); } } } 179/ Liệt kê các số thỏa đk lớn hơn trị tuyệt đối của số đứng liền sau nó . void LietKe(int a[], int n) { int flag = 0; for (int i=0; i<n; i++) { if (a[i]>abs(a[i-1])) { flag =1; printf(" %4d", a[i]); } } if (flag == 0) { printf("Mang ko co gia tri do"); return; } } 180 Liệt kê các giá trị thỏa: nhỏ hơn trị tuyệt đối của giá trị đứng liền sau và lớn hơn giá trị đứng liền trước nó 181 Liệt kê số chẵn có ít nhất 1 lận cận cũng là giá trị chẵn 182 Liệt kê các số có ít nhất 1 lận cận trái dấu với nó 183 Liệt kê vị trí mà giá trị tại đó là giá trị lớn nhất 184 Liệt kê vị trí của số nguyên tố 185 Liệt kê vị trí của số chính phương 186 Liệt kê vị trí mà giá trị bằng giá trị âm đầu tiên 187 Liệt kê vị trí mà giá trị bằng giá trị dương nhỏ nhất 188 Liệt kê vị trí chẵn lớn nhất 189 Liệt kê giá trị mà giá trị đó có chữ số đầu tiên là chữ số lẻ 190 Liệt kê giá trị tòan chữ số lẻ 191 Liệt kê các giá trị cực đại. Cực đại khi lớn hơn các ptử lận cận 192 Liệt kê giá trị có chữ số đầu tiên là chẵn 193 Liệt kê giá trị có dạng 3^k. Nếu mảng ko có thì trả về 0 194 Liệt kê các cặp giá trị gần nhau nhất 195 Liệt kê các bộ 3 giá trị (a,b,c) thỏa a=b+c. ví dụ: (6,2,4) 196 Liệt kê các số âm 197 Liệt kê các chữ số đầu là lẻ 198 Liệt kê các vị trí mà tại đó là giá trị max 199 Liệt kê vị trí mà giá trị đó là số nguyên tố Kĩ thuật tính tổng 200 Tổng các ptử trong mảng int tong(int A[], int n) { int s=0; for (int i=0; i<n; i++) { s = s + A[i]; } return s; } 201/ Tổng các ptử dương trong mảng int Tong (int A[], int n) { int s = 0; for (int i=0; i<n; i++) { if (A[i]>0) { s=s+A[i]; } } return s; } 202/ Tổng các ptử có chữ số đầu là chữ số lẻ int daule(int n) { int donvi; n=abs(n); while (n>=10) { donvi=n%10; n=n/10; } if (n%2==0) { return 0; return 1; } int tongdaule(int A[], int n) { int s=0; for (int i=0; i<n; i++) { if (daule(A[i])==1) { s = s + A[i]; } } return s; } 203/ Tổng các ptử có chữ số hàng chục là 5 int hangchuc5(int n) { n = abs(n); n=n/10; int hangchuc=n%10; if (hangchuc == 5) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (int i=0; i<n; i++) { if (hangchuc5(A[i])==1) { s = s + A[i]; } } return s; } 204/ Tổng các ptử lớn hơn ptử đứng liền trước nó int tonggiatri(int A[], int n) { int s = 0 ; for (int i=1; i<n; i++) { if (A[i]>A[i-1]) { s=s+A[i]; } } return s; } 205/ Tổng các ptử lớn hơn trị tuyệt đối của ptử liền sau nó int tonggiatri(int A[], int n) { int s=0; for (int i=0; i<n-1; i++) { if ( A[i] > abs(A[i+1]) ) { s=s+A[i]; } } return s; } 206/ Tổng các ptử lớn hơn ptử xung quanh int tonggiatri(int A[], int n) { int s=0; for (int i=0; i<n; i++) { if (i==0 && A[i]>A[i+1]) { s = s + A[i]; } else if (i!=0 && A[i]>A[i+1] && A[i] > A[i-1]) { s = s + A[i]; } else if (i==n-1 && A[i] > A[i-1]) { s = s + A[i]; } } return s; } 207/ Tổng các ptử cực trị – Cực trị là ptử khi nó lớn hoặc nhỏ hơn ptử xung quanh int tongcuctri(int A[], int n) { int s=0; for (int i= 0; i<n; i++) { if (i==0 && A[i]!=A[i+1]) { s = s + A[i]; } else if (i==n-1 && A[i]!=A[i-1]) { s = s + A[i]; } else if ((A[i]<A[i+1] && A[i]<A[i-1]) || (A[i]>A[i+1] && A[i]>A[i-1]) ) { s = s + A[i]; } } return s; } 208/ Tổng các ptử chính phương int sochinhphuong(int n) { int can = sqrt(n); if (can*can == n) return 1; return 0; } int Tong(int* A, int n) { int s=0; for (int i= 0; i<n; i++) { if (sochinhphuong(A[i])==1) { s=s+A[i]; } } return s; } 209/ Tổng các ptử đối xứng int sodoixung(int n) { int donvi, tam = n; int sodaonguoc = 0; while(tam!=0) { donvi = tam% 10; sodaonguoc = sodaonguoc*10 + donvi; tam = tam/10; } if (sodaonguoc == n) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (int i= 0; i<n; i++) { if (sodoixung(A[i])==1) { s=s+A[i]; } } return s; } 210/ Tổng các ptử có chữ số đầu là chẵn int sodauchan(int n) { while(n>=10) { n=n/10; } if (n%2 == 0) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (int i= 0; i<n; i++) { if (sodauchan(A[i])==1) { s=s+A[i]; dem ++; } } return s; } 211/ Trung bình cộng các số nguyên tố int songuyento(int n) { for(int i=2; i<n-1; i++) { if (n % i == 0) return 0; } return 1; } float TBCong(int A[], int n) { int s=0; float dem=0; for (int i= 0; i<n; i++) { if (songuyento(A[i])==1) { s=s+A[i]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; } 212/ Trung bình cộng các số dương float TrungBinhCong(int A[], int n) { int s=0; float dem=0; for (int i= 0; i<n; i++) { if (A[i]>0) { s=s+A[i]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; } 213/ Trung bình cộng các số lớn hơn x float TBCong(int A[], int n, int x) { int s=0; float dem=0; for (int i= 0; i<n; i++) { if (A[i]>x) { s=s+A[i]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; } 214/ Trung bình nhân các số dương float TBNhanDuong(int A[], int n, int m) { int T=1; float dem=0; for (int i= 0; i<n; i++) { if (A[i]>0) { T*=A[i]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return pow(T,1.0/dem); } 215 (*) Khoảng cách trung bình giữa các giá trị trong mảng double tong(int A[], int n) { int s=0; int y=0; for (int i= 0; i<n; i++) { for (int j=i+1;i<n;j++) { s = s + abs(A[i]-A[i+1]); y++; } } return pow(s,1.0/y); } Kĩ thuật đếm 216/ Đếm số lượng chẵn trong mảng int demsochan(int a[], int n) { int dem = 0; for (int i=0; i<n; i++) { if (a[i]%2 == 0) { dem ++; } } return dem; } 217/ Đếm số dương chia hết cho 7 trong mảng int demsochan(int a[], int n) { int dem = 0; for (int i=0; i<n; i++) { if (a[i]>0 && a[i]%7 == 0) { dem ++; } } return dem; } 218/ Đếm số đối xứng trong mảng int SoDoiXung(int n) { int DonVi=0; int DaoNguoc = 0; int tam = n; while (tam>0) { DonVi = tam % 10; tam = tam / 10; DaoNguoc = DaoNguoc*10 + DonVi; } if (DaoNguoc == n) { return 1; } return 0; } int dem (int a[], int n) { int dem = 0; for (int i=0; i<n; i++) { if (a[i]<0) { break; } if (SoDoiXung(a[i])==0) { dem ++; } } return dem; } 219/ Đếm số lần xuất hiện của giá trị x trong mảng int dem (int a[], int n,int x) { int dem = 0; for (int i=0; i<n; i++) { if (a[i] ==x) { dem ++; } } return dem; } 220 Đếm số lượng giá trị tận cùng bằng 5 trong mảng int dem (int a[], int n) { int dem = 0; for (int i=0; i<n; i++) { if (a[i]%10 == 5) { dem ++; } } return dem; } 221/ Cho biết sự tương quan giữa số lượng chẵn và lẻ trong mảng Hàm trả về 1 trong 3 giá trị -1, 0, 1 Giá trị -1 là chẵn nhiều hơn lẻ Giá trị 0 là chẵn == lẻ Giá trị 1 là chẵn ít hơn lẻ. int SoSanhChanLe(int a[], int n) { int demchan = 0; for (int i=0; i<n; i++) { if (a[i]%2 == 0) { demchan++; } } if (demchan > n - demchan) { return -1; } else if (n - demchan == demchan) { return 0; } return 1; } 222/ Đếm ptử lớn hơn hay nhỏ hơn ptửs xung quanh trong mảng int Dem(int A[], int n) { int i=0,j=0, DemTam=0; for (i=0; i<n; i++) { if (i==0 && A[i]!=A[i+1]) { DemTam++; } else if ( i == n-1 && A[i-1]!=A[i]) { DemTam++; } else if ((A[i-1]>A[i] && A[i]<A[i+1]) || (A[i-1]<A[i] && A[i]>A[i+1]) ) { DemTam++; } } return DemTam; } 223: Đếm số nguyên tố trong mảng int SoNguyenTo(int a) { if (a<=1) { return 0; } for (int i=2; i<a; i++) { if (a% i==0) { return 0; } } return 1; } int Dem(int a[], int n) { int i=0, DemTam=0; for (i=0; i<n; i++) { if (SoNguyenTo(a[i])==1) { DemTam++; } } return DemTam; } 224/ Đếm số hoàn thiện trong mảng int sohoanthien(int n) { int tong=0; for (int i=1 ; i<n; i++) if(n%i==0) tong = tong + i; if (tong == n) return 1; return 0; } int Dem(int a[], int n) { int i=0, DemTam=0; for (i=0; i<n; i++) { if (sohoanthien(a[i])==1) { DemTam++; } } return DemTam; } 225/ Đếm số lượng giá trị lớn nhất có trong mảng int Dem(int a[], int n) { int i=0,DemTam=0; int Max = a[0]; for (i=0; i<n; i++) { if (Max == a[i]) { DemTam++; } else if (Max < a[i]) { Max = a[i]; DemTam = 1; } } return DemTam; } 226/ Hãy xác định số lượng ptử kề nhau mà cả 2 đều chẵn int Dem(int a[], int n) { int i=0,DemTam=0; for (i=0; i<n-1; i++) { if (a[i]%2==0 && a[i+1]%2==0) { DemTam++; } } if (DemTam!=0) { DemTam++; } return DemTam; } 227/ Hãy xác định số lượng ptử kề nhau mà cả 2 trái dấu int Dem(int a[], int n) { int i=0,DemTam=0; for (i=0; i<n-1; i++) { [...]... = 1 ; break; } } return flag; } 24 2/ Ktra mảng có số chẵn ko? Có trả về 1, ko có trả về 0 int kiemtrachan(int A[] , i nt n) { int flag = 0; for(int i=0 ; i . dem; } 2 21/ Cho biết sự tương quan giữa số lượng chẵn và lẻ trong mảng Hàm trả về 1 trong 3 giá trị -1, 0, 1 Giá trị -1 là chẵn nhiều hơn lẻ Giá trị 0 là chẵn == lẻ Giá trị 1 là chẵn ít. trước nó 18 1 Liệt kê số chẵn có ít nhất 1 lận cận cũng là giá trị chẵn 18 2 Liệt kê các số có ít nhất 1 lận cận trái dấu với nó 18 3 Liệt kê vị trí mà giá trị tại đó là giá trị lớn nhất 18 4 Liệt. mảng ko có thì trả về 0 19 4 Liệt kê các cặp giá trị gần nhau nhất 19 5 Liệt kê các bộ 3 giá trị (a,b,c) thỏa a=b+c. ví dụ: (6 ,2, 4) 19 6 Liệt kê các số âm 19 7 Liệt kê các chữ số đầu là lẻ 19 8

Ngày đăng: 29/07/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan