Bài toán tìm số lớn nhất, nhỏ nhất trong mảng C/C++ là bài toán thường gặp. Đây là bài toán giúp bạn luyện tập rất tốt ngôn ngữ lập trình C/C++.
Bài viết chữa bài tập số 9 trong chuỗi bài tập làm chủ ngôn ngữ C/C++ .
Mục lục bài viết
1. Giới thiệu bài toán
Bài toán tìm số lớn nhất, luôn là bài toán hay cho các bạn mới học lập trình.
Đề bài:
Viết hàm trả về giá trị và chỉ số của phần tử lớn nhất trong mảng 1 chiều a có n phần tử.
Mình đánh giá đây là bài toán ở mức đơn giản, hầu hết các bạn đều có thể làm được.
2. Giải quyết bài toán
2.1 Ý tưởng giải quyết
Chúng ta sẽ viết hàm (FindMax) để giải quyết bài toán này.
Ý tưởng:
- Khai báo hai biến Max và biết Location (chỉ số, vị trí)
- Gán Max là phần tử đầu tiên của mảng (a[0]), gán Location =0.
- Cho vòng for duyệt từ phần tử thứ 2 đến cuối mảng, nếu gặp phần tử lớn hơn Max, ta gán Max bằng phần tử đó, Location = vị trí của phần tử đó
- Cuối cùng in ra kết quả Max và Location
Thật đơn giản phải không nào!
2.2 Code C/C++ tìm số lớn nhất trong mảng
Dựa theo ý tưởng mình trình bày ở trên, mình viết hàm FindMax sau:
Code C:
void FindMax(int a[], int n) int Max, Location; Max=a[0]; Location =0; for(int i=1;i<n;i++) if(a[i]>Max) Max=a[i]; Location=i; printf(“nPhan tu Max: %d”, Max); printf(“nChi so cua phan tu Max: %d”, Location);
Code C++:
void FindMax(int a[], int n) int Max, Location; Max=a[0]; Location =0; for(int i=1;i<n;i++) if(a[i]>Max) Max=a[i]; Location=i; cout<<“nPhan tu Max: “<<Max<<endl; cout<<“Chi so cua phan tu Max: “<<Location<<endl;
Thật ra, ngôn ngữ lập trình C++ là nâng cấp của ngôn ngữ lập trình C. Do đó, các cấu trúc tương đối giống nhau, chỉ khác câu lệnh nhập xuất ra màn hình thôi.
2.3 Chương trình tìm số lớn nhất trong C/C++
Mính sẽ thêm phần nhập xuất mảng và một số cấu trúc mặc định của ngôn ngữ là thành chương trình theo bài yêu cầu.
Code C:
#include<stdio.h> void nhap(int a[], int &n) do printf(“Nhap n: “); scanf(“%d”,&n); while(n<2 void xuat(int a[], int n) printf(“Mang vua nhap la: n”); for(int i=0;i<n;i++) printf(“%5d”,a[i]); void FindMax(int a[], int n) int Max, Location; Max=a[0]; Location =0; for(int i=1;i<n;i++) if(a[i]>Max) Max=a[i]; Location=i; printf(“nPhan tu Max: %d”, Max); printf(“nChi so cua phan tu Max: %d”, Location); int main() int a[100]; int n; nhap(a,n); xuat(a,n); FindMax(a,n); return 0;
Code C++:
#include<bits/stdc++.h> using namespace std; void nhap(int a[], int &n)n>99); for(int i=0; i<n; i++) cout<<“a[“<<i<<“]: “; cin>>a[i]; void xuat(int a[], int n) cout<<“Mang vua nhap la:n”; for(int i=0;i<n;i++) cout<<” “<<a[i]; void FindMax(int a[], int n) int Max, Location; Max=a[0]; Location =0; for(int i=1;i<n;i++) if(a[i]>Max) Max=a[i]; Location=i; cout<<“nPhan tu Max: “<<Max<<endl; cout<<“Chi so cua phan tu Max: “<<Location<<endl; int main() int a[100]; int n; nhap(a,n); xuat(a,n); FindMax(a,n); return 0;
Xong rồi. Kết quả của việc chạy chương trình bên trên đây:
Bài viết đến đây là hết, càm ơn bạn đã quan tâm bài viết của mình . Đừng bỏ lỡ những bài tập C/C++ tiếp theo nhé!
Xem tiếp Bài 10: Tìm số nhỏ nhất trong mảng
Xem lại bài 8: Hàm tính trung bình các số lẻ và chia hết cho 5
Tải về file đề cương 67 bài tập lập trình C/C++
Mọi vấn đề thắc mắc trong quá trình tham khảo bài viết, bạn đọc vui lòng comment xuống phía dưới bài viết để mình hỗ trợ.
Rất mong nhận được các ý kiến đóng góp của mọ người để bài chia sẻ của mình hoàn thiện hơn.
- Share CrocoBlock key trọn đời Download Crocoblock Free
- Cung cấp tài khoản nghe nhạc đỉnh cao Tidal Hifi – chất lượng âm thanh Master cho anh em mê nhạc.
- Cách Đăng Ký Tài Khoản Vip Zing Mp3 2018, Cách Nhận 30 Ngày Tài Khoản Vip Zing Mp3 Miễn Phí
- Giải mã các ký hiệu trên đồng hồ đeo tay thường gặp nhất hiện nay
- Hướng dẫn kết nối điện thoại với Mi Band 2 – Thegioididong.com
- 11 mẹo hay trị vết thâm tím | Báo Dân trí
- Cách điều tra thông tin chủ nhân số điện thoại lạ của người khác