Tìm giá trị lớn thứ 2 trong mảng Java

Chương trình tìm giá trị lớn thứ hai của mảng là một chương trình C điển hình về mảng. Chương trình này giúp bạn hiểu cách sử dụng vòng lặp, mảng, lệnh IF và các toán tử điều kiện trong C.

Nội dung chính

  • Chương trình C
  • Video giải thích chi tiết về Tìm phần tử nhỏ thứ hai trong mảng, Tìm phần tử lớn thứ hai trong mảng | Tự học lập trình C
  • Tìm số lớn nhất trong mảng Java đã khởi tạo sẵn
  • Tìm số lớn nhất trong mảng Java được nhập từ bàn phím.
  • Video liên quan

Để giải bài tập C này, chúng ta duyệt qua từng phần tử trong mảng và kiểm tra xem phần tử đó có phải là lớn thứ hai không.

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm giá trị lớn thứ hai của mảng trong C:

#include <stdio.h>
int main() {
int array[10] = {101, 11, 3, 4, 50, 69, 7, 8, 9, 0};
int loop, largest, second;
if(array[0] > array[1]) {
largest = array[0];
second = array[1];
}else {
largest = array[1];
second = array[0];
}
printf(“Chuong trinh tim phan tu lon nhat va lon thu hai cua mang:\n\n”);
for(loop = 2; loop < 10; loop++) {
if( largest < array[loop] ) {
second = largest;
largest = array[loop];
}else if( second < array[loop] ) {
second = array[loop];
}
}
printf(“Phan tu lon nhat: %d \nPhan tu lon thu hai: %d \n”, largest, second);
return 0;
}

Quảng cáo

Biên dịch chương trình C trên sẽ cho kết quả:

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/
Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.

bai-tap-mang-mot-chieu-trong-c.jsp

Video giải thích chi tiết về Tìm phần tử nhỏ thứ hai trong mảng, Tìm phần tử lớn thứ hai trong mảng | Tự học lập trình C

#include “stdio.h”
#include “limits.h”
int a[100];
int n; void nhapMang(int x[100], int &n){ printf(“Nhap vao so luong phan tu: “); scanf(“%d”, &n); for(int i=0; i<n; i++){ printf(“Nhap x[%d]:”, i); scanf(“%d”, &x[i]); }
} void xuatMang(int x[100], int n){ printf(“Gia tri cua mang la: “); for(int i=0; i<n; i++){ printf(“%d “, x[i]); }
} int timMinThuHai(int x[100], int n){ int min = INT_MAX; int min_2 = INT_MAX; for(int i =0 ; i<n; i++){ if(x[i]<min) min = x[i]; } for(int i=0; i<n; i++){ if (x[i]==min){ continue; }else{ if(x[i]<min_2){ min_2 = x[i]; } } } return min_2;
} int timMaxThuHai(int x[100], int n){ int max = INT_MIN; int max_2 = INT_MIN; for(int i =0 ; i<n; i++){ if(x[i]>max) max = x[i]; } for(int i=0; i<n; i++){ if (x[i]==max){ continue; }else{ if(x[i]>max_2){ max_2 = x[i]; } } } return max_2;
} int main(){ nhapMang(a, n); xuatMang(a, n); printf(“\n”); printf(“Min_2 = %d”, timMinThuHai(a, n)); printf(“\n”); printf(“Max_2 = %d”, timMaxThuHai(a, n));
}

Trong bài viết này chúng ta sẽ tìm hiểu về cách tìm số lớn nhất trong mảng trong Java. Đây là dạng bài tập thường gặp khi bắt đầu học một ngôn ngữ lập trình nào đó.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Các bạn cần tìm hiểu về mảng, cách khởi tạo và in mảng trong Java trước đã nhé. Các bạn có thể tham thảo về mảng một chiều trong Java.

Tìm số lớn nhất trong mảng Java đã khởi tạo sẵn

Đầu tiên mình sẽ khai báo một mảng numberArr[], sau đó khởi tạo các giá trị cho nó.

double[] numberArr = { 12.3, -4, 10, 4.24, 2, 71, -2, -6 };

Tiếp đến chúng ta cần một biến max làm biến trung gian được sử dụng để so sánh với các giá trị khác trong mảng. Max sẽ được gán bằng giá trị của phần tử đầu tiên trong mảng.

Bài viết này được đăng tại [free tuts .net]

Dùng một vòng lặp for để lặp tất cả các phần tử trong mảng và in nó ra màn hình.

System.out.println(“\n\nCác phần tử trong mảng là: “);
for(double i : numberArr){
System.out.print(i + “, “);
}

Cuối cùng ta cần thêm một vòng lặp for nữa để so sánh max với từng phần tử trong mảng, nếu số nào lớn hơn max thì gán nó cho max.

for (double num: numberArr) {
if(max < num)
max = num;
}

Ví dụ: Mình sẽ viết một chương trình hoàn chỉnh để tìm số lớn nhất trong mảng đã khởi tạo giá trị sẵn.

import java.util.Scanner;
class Main {
public static void main(String[] args) {
//khai báo một mảng numberArr sau đó khởi tạo các giá trị cho các phần tử.
double[] numberArr = { 12.3, -4, 10, 4.24, 2, 71, -2, -6 };
//gán giá trị của phần tử đầu tiên cho max, sau đó dùng max so sánh với các phần tử còn lại trong mảng.
double max = numberArr[0];
//in các phần tử trong mảng ra màn hình
System.out.println(“\n\nCác phần tử trong mảng là: “);
for(double i : numberArr){
System.out.print(i + “, “);
}
//dùng vòng lặp for duyệt các phần tử trong mảng. so sánh max với từng phần tử nếu số nào lớn hơn max thì gán nó cho max.
// cứ lặp như vậy cho đến hết các phần tử thì max sẽ là giá trị lớn nhất trong mảng
for (double num: numberArr) {
if(max < num)
max = num;
}
System.out.printf(“\nSố lớn nhất trong mảng là: %.2f”, max);
System.out.println(“\n———————————-“);
System.out.println(“Chương trình này được đăng tại Freetuts.net”);
}
}

Kết quả:

Tìm số lớn nhất trong mảng Java được nhập từ bàn phím.

Tương tư như ví dụ ở trên, nhưng trong phần này mình sẽ sử dụng class Scanner để lấy dữ liệu từ bàn phím. Nhớ import thư viện ở đầu file trước đã nhé:

import java.util.Scanner;

Chúng ta cần một biến n là số lượng các phần tử trong mảng, n được nhập từ bàn phím.

Tiếp đến cần một vòng lặp for lặp từ 0 đến n để nhập giá trị cho các phần tử trong mảng.

//nhập giá trị cho từng phần tử trong mảng
for (int i = 0; i < n; i++) {
System.out.print(“\nNhập phần tử thứ ” + i + “: “);
numberArr[i] = sc.nextInt();
}

Như vậy là ta đã có dữ liệu để thực hiện tìm số lớn nhất, bây giờ thực hiện như ví dụ 1 là có thể tìm được số lớn nhất trong mảng rồi đấy.

Ví dụ: Mình sẽ viết hoàn chỉnh chương trình tìm số lớn nhất trong mảng được nhập từ bàn phím.

import java.util.Scanner;
class Main {
public static void main(String[] args) {
//sử dụng class Scanner để lấy dữ liệu từ bàn phím
Scanner sc = new Scanner(System.in);
//khai báo biến n là số lượng phần tử trong mảng
int n;
System.out.print(“\n\nNhập số lượng phần tử cho mảng: “);
n = sc.nextInt();
int numberArr[] = new int[n];
//nhập giá trị cho từng phần tử trong mảng
for (int i = 0; i < n; i++) {
System.out.print(“\nNhập phần tử thứ ” + i + “: “);
numberArr[i] = sc.nextInt();
}
//in các phần tử trong mảng ra màn hình
System.out.println(“Các phần tử trong mảng là: “);
for(double i : numberArr){
System.out.print(i + “, “);
}
double max = numberArr[0];
//dùng vòng lặp for duyệt các phần tử trong mảng. so sánh max với từng phần tử nếu số nào lớn hơn max thì gán nó cho max.
// cứ lặp như vậy cho đến hết các phần tử thì max sẽ là giá trị lớn nhất trong mảng
for (double num: numberArr) {
if(max < num)
max = num;
}
System.out.printf(“\nSố lớn nhất trong mảng là: %.2f”, max);
System.out.println(“\n———————————-“);
System.out.println(“Chương trình này được đăng tại Freetuts.net”);
}
}

Kết quả:

Như vậy là chúng ta đã tìm hiểu xong cách tìm kiếm số lớn nhất trong mảng trong Java. Các bạn có thể tham khảo các bài tập Java khác tại Bài tập Java, Chúc các bạn thành công !!!