Lập trình Java - Tìm phần tử lớn nhất, In ra các phần tử ....
Viết chương trình nhập vào vào ma trận A có n dòng, m cột, các phần tử là những số nguyên lớn hơn 0 và nhỏ hơn 100 được nhập vào từ bàn phím. Thực hiện các chức năng sau:
- Tìm phần tử lớn nhất của ma trận cùng chỉ số của số đó.
- Tìm và in ra các phần tử là số nguyên tố của ma trận (các phần tử không nguyên tố thì thay bằng số 0).
- Sắp xếp tất cả các cột của ma trận theo thứ tự tăng dần và in kết quả ra màn hình.
Mã nguồn chương trình:
import java.util.Scanner;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author ADMIN
*/
public class Bai29 {
/**
* @param args the command line arguments
*/
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static boolean checkSNT(int n){
if(n>1){
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
else return false;
}
public static void inMT(int[][] A, int n, int m){
int i,j;
for(i=0 ; i<n ; i++){
System.out.print("\n");
for(j=0 ; j<m ; j++) System.out.print(" "+A[i][j]);
}
}
public static int findMaxMT(int[][] A, int n, int m){
int Max= A[0][0];
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<m ; j++){
if(Max<A[i][j]) Max= A[i][j];
}
}
return (Max);
}
//Tim nhung phan tu la SNT
public static void phanTuSNT(int[][] A, int n, int m){
int count=0,i,j;
System.out.println("\nCac phan tu la SNT (nhung phan tu ko la SNT =0): ");
for(i=0 ; i<n ; i++){
System.out.print("\n");
for(j=0 ; j<m ; j++){
if(checkSNT(A[i][j])){
count++;
System.out.print(" "+A[i][j]);
}
else System.out.print(" "+0);
}
}
System.out.println("\n Co "+count+" phan tu la so nguyen to");
}
//Sap xep cac cot theo thu tang dan
public static void sortColum(int[][] A, int n, int m){
int i,j,temp;
for(j=0 ; j<m ; j++){
for(i=1 ; i<n ; i++){
if(A[i-1][j]>A[i][j]){
temp= A[i-1][j];
A[i-1][j]= A[i][j];
A[i][j]= temp;
}
}
}
inMT(A, n, m);
}
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Nhap so hang n=");
int n= nhap();
System.out.println("Nhap so cot m=");
int m= nhap();
int [][] A= new int[n][m];
int i,j;
for(i=0 ; i<n ; i++){
for(j=0 ; j<m ; j++){
System.out.println("Nhap phan tu thu A["+(i+1)+"]["+(j+1)+"]= ");
A[i][j]= nhap();
}
}
System.out.println("Ma tran nhap vao: ");
inMT(A, n, m);
for(i=0 ; i<n ; i++){
for(j=0 ; j<m ; j++){
if(A[i][j]==findMaxMT(A, n, m))
System.out.println("\nPhan tu o hang "+i+" cot "+j+" dat Max: A["+i+"]["+j+"]= "+A[i][j]);
}
}
phanTuSNT(A, n, m);
sortColum(A, n, m);
}
}
Kết quả chạy chương trình:
Nhap so hang n=
3
Nhap so cot m=
3
Nhap phan tu thu A[1][1]=
4
Nhap phan tu thu A[1][2]=
3
Nhap phan tu thu A[1][3]=
21
Nhap phan tu thu A[2][1]=
5
Nhap phan tu thu A[2][2]=
6
Nhap phan tu thu A[2][3]=
7
Nhap phan tu thu A[3][1]=
3
Nhap phan tu thu A[3][2]=
9
Nhap phan tu thu A[3][3]=
2
Ma tran nhap vao:
4 3 21
5 6 7
3 9 2
Phan tu o hang 0 cot 2 dat Max: A[0][2]= 21
Cac phan tu la SNT (nhung phan tu ko la SNT =0):
0 3 0
5 0 7
3 0 2
Co 5 phan tu la so nguyen to
4 3 7
3 6 2
5 9 21