#include// de su dung printf va scanf #include// ket thuc ham bang getch(); #define MAX 100 // gia tri lon la 100 //___________________________________________________________________________________________// /* Su dung 2 thu vien chinh. */ //______________________________________________________________________// /* Khai bao danh sach struct */ //________________________________________________________________________// /* Khai bao chuong trinh con */ //===============================// // ham con nhap 1 mang //===== so luong phan tu mang =========// void nhapsoluongphantu( int &n ) { do{ printf("Moi ban nhap so luong phan tu cua mang, chu y khong am: "); scanf("%d", &n); } while (n<=0 || n>100); // nhap vao gia tri sai voi dieu kien se phai nhap lai } /*----------------------------------------- // ham nhap gia tri cho tung phan tu trong mang */ void nhapmang(int a[],int n) { for(int i=0;i0)// de kiem tra phan tu duong trong mang { flag =1; return 0; } } // ket thuc vong for ,vna khong thay doi flag, nghia la tim khong thay if(flag = -1) { return -1 ; } } /*----------------------------------------- // ham tim vi tri phan tu duong cuoi trong mang */ int PhanTuDuongCuoiCungTrongMang(int a[],int n) { int flag = -1; // flag xac dinh ton tai so duong trong mang hay ko?, hien tai la -1, ko biet. for( int i=n-1; i>=0;i-- ) // chay nguoc tu cuoi mang ve 0, cuoi mang la n-1, ve 0 nen >=0 { if( a[i]>0 ) // day la dieu kien phan tu duong { flag = 1; return i; } } //// ket thuc vong for, van ko thay doi flag, nghia la tim ko thay if( flag == -1 ) { return -1; } } //=============================================// int GiaTriLonNhatTrongMang( int a[], int n ) { int Max = a[0]; // gan thang a[0] la max, so sanh nhung vi tri con lai xem co phan tu nao lon hon Max ko? for( int i = 1; i < n ; i++ ) // chay tu vi tri 1, cho den n-1. ko xet vi tri 0 { if( a[i] > Max ) // neu no cao hon thang Max, thi no se danh vi tri Max { Max= a[i]; // chu mung dong chi a[i] da danh ngoi vi quan quan } } ////// ket thuc vong fot, da xac dinh dc Max return Max; } //=======Xuat vi tri Max, co the co nhieu vi tri Max======================// void ViTriMaxTrongMang( int a[], int n ) { int Max = GiaTriLonNhatTrongMang( a,n ); printf("\nNhung vi tri ma gia tri lon nhat trong mang: "); for( int i = 0; i < n; i++ ) // lan nay chay i tu 0 toi n-1, vi Max co the o vi tri bat ky trong mang. { if( a[i] == Max ) { printf("%5d",i+1); } } } int main() { int a[100];// Mang kieu so nguyen toi da 100 phan tu int n=0;//n la ten bien soluongphantu , so luong la so nguyen khoi tao bang 0 nhapsoluongphantu(n); nhapmang(a,n); xuatmang(a,n); int vitri=timduongdau(a,n); if(vitri==-1) { printf("\nKhong co phan tu duong trong mang!"); } else { printf("\nPhan tu duong dau tien trong mang la: %d dung o vi tri so %d",a[vitri], vitri+1 ); } int vitriduongcuoi = PhanTuDuongCuoiCungTrongMang (a,n); if( vitriduongcuoi == -1 ) { printf("\nKhong co phan tu duong trong mang!"); } else { printf("\nPhan tu duong cuoi cung trong mang la: %d dung o vi tri so %d", a[vitriduongcuoi], vitriduongcuoi+1 ); } ViTriMaxTrongMang(a,n); getch (); }