Tìm Số Chẵn Lớn Nhất/nhỏ Nhất Trong Mảng

Sign in Sign in Welcome!Log into your account your username your password Forgot your password? Password recovery Recover your password your email Search Wednesday, December 17, 2025
  • Sign in / Join
Sign in Welcome! Log into your account your username your password Forgot your password? Get help Password recovery Recover your password your email A password will be e-mailed to you. sinhvientot.net sinhvientot.net sinhvientot.net sinhvientot.net Home Lập trình C/C++ Tìm số chẵn lớn nhất/nhỏ nhất trong mảng Facebook Twitter Pinterest WhatsApp

Bài toán: Tìm số chẵn lớn nhất/nhỏ nhất trong mảng số nguyên

Input: mảng a có n phần tử

Xử lý:  duyệt mảng, tìm vị trí chẵn đầu tiên trong mạng

Giữ lại vị trí vừa mới tìm được, rồi thoát khỏi vòng lặp

Nếu duyệt hết mảng mà không tìm được số chẵn thì trả về giá trị -1

Nếu tìm được số chẵn thì gán vị trí đó

Duyệt mảng từ vị trí phần tử chẵn đầu tiên + 1 đến hết mảng

Nều là giá trị chẵn và giá trị chẵn lớn hơn/nhỏ hơn giá trị chẵn đầu tiên tìm được thì cập nhật lại giá trị vừa tìm được, duyệt đến hết mảng sẽ tìm được giá trị chẵn lớn nhất/nhỏ nhất

Output: mảng không có giá trị chẵn -1, giá trị chẵn lớn nhất/nhỏ nhất trong mảng

Hàm tìm giá trị chẵn lớn nhất

Ví dụ: n=6

a[0]=5;a[1]=8;a[2]=7;a[3]=23;a[4]=12;a[5]=10

int SoChanLonNhat(int a[], int n) { int i,d,vt; for( i=0 ; i<n ; i++ ) if( a[i]%2==0) // 8 chia het cho 2 { d=i; // d=1 break; // thoat khoi lenh } if(i==n) return -1; // trong mang khong co gia tri chan vt=d; for( i=d+1 ; i<n ; i++ ) // i=2;i<6;i++ if(a[i]%2==0 && a[i]>a[vt]) // a[4]%2==0 && a[4]>a[1]; a[5]%2==0 && a[5]<a[4] vt=i; // vt=4 return a[vt]; // tra ve gia tri la: 12 }

Hàm tìm giá trị chẵn nhỏ nhất

int SoChanNhoNhat(int a[], int n) { int i,d,vt; for( i=0 ; i<n ; i++ ) if( a[i]%2==0) // 8 chia het cho 2 { d=i; // d=1 break; // thoat khoi lenh } if(i==n) return -1; // trong mang khong co gia tri chan vt=d; for( i=d+1 ; i<n ; i++ ) // i=2;i<6;i++ if(a[i]%2==0 && a[i]<a[vt]) // a[4]%2==0 && a[4]>a[1]; a[5]%2==0 && a[5]>a[1] vt=i; // vt=1 return a[vt]; // tra ve gia tri la: 8 }

Chương trình tìm giá trị lớn nhất/nhỏ nhất trong mảng

#include<stdio.h> #include<conio.h> #define MAX 100 void nhapmang(int a[], int &n); void xuatmang(int a[], int n); int SoChanLonNhat(int a[], int n); int SoChanNhoNhat(int a[], int n); void main() { int a[MAX],n; nhapmang(a,n); printf("\nNoi dung cua mang"); xuatmang(a,n); if(SoChanLonNhat(a,n)==-1) printf("\nTrong mang khong co so chan "); else printf("\nSo chan lon nhat trong mang la: %d",SoChanLonNhat(a,n)); printf("\nChuc cac ban hoc tot"); getch(); } void nhapmang(int a[], int &n) { do { printf("\nSo phan tu trong mang "); scanf("%d",&n); }while(n<=0 && n>100); for(int i=0 ; i<n ; i++ ) { printf("\nSo phan tu a[%d] la: ",i); scanf("%d",&a[i]); } } void xuatmang(int a[], int n) { for(int i=0 ; i<n ; i++ ) printf("%4d",a[i]); } int SoChanLonNhat(int a[], int n) { int i,d,vt; for( i=0 ; i<n ; i++ ) if( a[i]%2==0) // 8 chia het cho 2 { d=i; // d=1 break; // thoat khoi lenh } if(i==n) return -1; // trong mang khong co gia tri chan vt=d; for( i=d+1 ; i<n ; i++ ) // i=2;i<6;i++ if(a[i]%2==0 && a[i]>a[vt]) // a[4]%2==0 && a[4]>a[1]; a[5]%2==0 && a[5]<a[4] vt=i; // vt=4 return a[vt]; // tra ve gia tri la: 12 } int SoChanNhoNhat(int a[], int n) { int i,d,vt; for( i=0 ; i<n ; i++ ) if( a[i]%2==0) // 8 chia het cho 2 { d=i; // d=1 break; // thoat khoi lenh } if(i==n) return -1; // trong mang khong co gia tri chan vt=d; for( i=d+1 ; i<n ; i++ ) // i=2;i<6;i++ if(a[i]%2==0 && a[i]<a[vt]) // a[4]%2==0 && a[4]>a[1]; a[5]%2==0 && a[5]>a[1] vt=i; // vt=1 return a[vt]; // tra ve gia tri la: 8 }

Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.

Chúc các bạn thành công!

Xem thêm:Tìm số chẵn/lẻ âm nhỏ nhất trong mảng

RELATED ARTICLESMORE FROM AUTHOR

C/C++

Sự khác nhau giữa Inline function và Macro trong C

C/C++

Trong ngôn ngữ C/C++ có bao nhiêu vùng nhớ (Memory layout)

C/C++

Cấu trúc dữ liệu danh sách nhân viên

C/C++

Tổng quan File trong C

C/C++

Cấu trúc kiểu dữ liệu sinh viên

C/C++

Cấu trúc mô tả một điểm trên tọa độ xOy

9 COMMENTS

  1. trình bày thuật toán (bao gồm:input-output-process-bộ giữ liệu test) để tìm số chẵn lớn nhất của một dãy n số gồm:x1,x2,…,xn.

    Log in to leave a comment
  2. chỗ nhập vào n bằng do…while thì lệnh trong while(n100) nhá chứ dùng && thì có n nào thoả mãn được

    Log in to leave a comment
    • while dùng “hoặc” chứ sao dùng “và” được

      Log in to leave a comment
  3. #include #include #define MAXSIZE 100 void nhapmang(int a[], int &n) { do { printf(“Nhap so phan tu:”); scanf(“%d”,&n); }while (n<=0); for(int i=0;i<n;i++) {printf("Phan tu thu a[%d]:",i); scanf("%d",&a[i]); }

    } void xuatmang(int a[], int n) {for(int i=0;i<n;i++) printf("%4d",a[i]); } int scln(int a[],int n) { int max; for(int i=0; i<n;i++) { if(a[i]%2==0) {max=a[i]; for(int j=0;jmax && a[j]%2==0) max=a[j]; }} return max; } int main() { int a[100],n; nhapmang(a,n); xuatmang(a,n); printf(“\nSo chan lon nhat la: %d”,scln(a,n)); getch(); }

    Log in to leave a comment
    • bạn muốn hỏi gì ?

      Log in to leave a comment
  4. Chỉ mình bài này với Viết chương trình nhập vào một ma trận là các số nguyên với kích thước MxN (M, N >= 3). Hãy: – Tìm phần tử có giá trị nhỏ nhất (min) và phần tử có giá trị lớn nhất (max) trong ma trận. – In ra các số chẵn nằm trong đoạn [min, max] không có trong ma trận.

    Log in to leave a comment
    • Bạn phân tích đề, quan trọng là hiểu đề muốn làm gì, rồi viết ra giải thuật trên giấy theo cách hiểu. rồi hiện thực bằng code. sau đó tập sửa code, nếu vẫn ko đc thì có thể liên hệ page để hỗ trợ tiếp nhé!

      Log in to leave a comment
  5. Giúp mình bài này với: Viết hàm nhập vào 1 mảng số nguyên 2 chiều gồm nxm phần tử. Viết hàm xuất mảng 2 chiều vừa nhập dưới dạng ma trận. Viết hàm tìm số lẻ nhỏ nhất. Viết hàm tính TBC các số chẵn. Viết hàm chính main() để gọi các hàm trên. (có sử dụng con trỏ)

    Log in to leave a comment
    • Những bài tập căn bản của người mới học lập trình. Bạn có thể search trên web sinhvientot.net hoặc Google nhé!

      Log in to leave a comment

LEAVE A REPLY Cancel reply

Log in to leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Danh sách các bài học

Các kiểu dữ liệu cơ bản trong ngôn ngữ C/C++

Mr Good - April 16, 2016 0

Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012

April 16, 2016

Biến-Hằng-Câu lệnh và biểu thức trong C/C++

April 16, 2016

Cấu trúc IF-ELSE

April 16, 2016

Cấu trúc switch – case

April 16, 2016

Vòng lặp For

April 16, 2016

Cấu trúc While, Do-while

April 16, 2016

Cách sử dụng hàm trong lập trình

April 16, 2016

Mảng một chiều

April 16, 2016 Load more

Bài viết mới nhất

Download

Download Cisco Packet Tracer

Windows 10

Hướng dẫn cài đặt webserver trên localhost để chạy wordpress

HPE

Hướng dẫn cấu hình IP ILO máy chủ HP DL380 Gen10

CentOS

CentOS 8 – Giới thiệu về hệ điều hành Linux (P1)

Load more © Copyright 2016, All Rights Reserved. Donations are always appreciated! MEW: 0x296f1a39d5Ca3cb83C76724eA38af3B90B90109D MORE STORIES

Bài 3. Vòng đời của trang ASP.NET

MUNI - June 30, 2016 1

Lớp Queue trong C#

Nguyễn Văn Hiếu - October 18, 2016 0

Từ khóa » Tìm Số Lẻ Lớn Nhất Trong Mảng