หาค่าเฉลี่ยและจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย
โจทย์
เขียนโปรแกรมที่ใช้อาร์เรย์ในการแก้ปัญหาต่อไปนี้: อ่านรายการของตัวเลขที่กำหนด คำนวณค่าเฉลี่ยของตัวเลขเหล่านี้ และหาจำนวนรายการที่มีค่ามากกว่าค่าเฉลี่ย โปรแกรมของคุณควรแสดงค่าเฉลี่ยและนับจำนวนของตัวเลขที่มีค่ามากกว่าค่าเฉลี่ย
| Input | Output |
|---|---|
| 10 3 5 6 1 6 7 3 8 6 9 | AVG: 5.4 No. above the AVG: 6 |
โค้ด
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] numbers = new int[n];
for (int i = 0; i < n; i++) {
numbers[i] = scanner.nextInt();
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += numbers[i];
}
double avg = sum / (double) n;
int aboveAvgCount = 0;
for (int i = 0; i < n; i++) {
if (numbers[i] > avg) {
aboveAvgCount++;
}
}
System.out.println("AVG: " + avg);
System.out.println("No. above the AVG: " + aboveAvgCount);
}
}คำอธิบาย
ขั้นตอนที่ 1: การนำเข้าและการตั้งค่าเริ่มต้น
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);- เรานำเข้า
Scannerซึ่งเป็นเครื่องมือที่ช่วยให้เราสามารถรับข้อมูลจากผู้ใช้ได้ - เราสร้างคลาสชื่อ
Mainและฟังก์ชันmainซึ่งเป็นจุดเริ่มต้นของโปรแกรม - เราสร้างออบเจ็กต์
Scannerเพื่อใช้ในการรับข้อมูล
ขั้นตอนที่ 2: การรับจำนวนตัวเลขและสร้างอาร์เรย์
int n = scanner.nextInt();
int[] numbers = new int[n];- เรารับจำนวนตัวเลขที่ผู้ใช้ต้องการป้อนและเก็บไว้ในตัวแปร
n - เราสร้างอาร์เรย์ชื่อ
numbersที่มีขนาดเท่ากับnเพื่อเก็บตัวเลขที่ผู้ใช้จะป้อน
ขั้นตอนที่ 3: การรับตัวเลขจากผู้ใช้
for (int i = 0; i < n; i++) {
numbers[i] = scanner.nextInt();
}- เราใช้ลูป
forเพื่อรับตัวเลขจากผู้ใช้ทีละตัว - ลูปนี้จะทำงาน
nครั้ง โดยแต่ละครั้งจะรับตัวเลขหนึ่งตัวและเก็บไว้ในอาร์เรย์numbers
ขั้นตอนที่ 4: การคำนวณผลรวมของตัวเลขทั้งหมด
int sum = 0;
for (int i = 0; i < n; i++) {
sum += numbers[i];
}- เราสร้างตัวแปร
sumเพื่อเก็บผลรวมของตัวเลขทั้งหมด - เราใช้ลูป
forเพื่อวนผ่านทุกตัวเลขในอาร์เรย์numbers - ในแต่ละรอบ เราบวกค่าของตัวเลขปัจจุบันเข้ากับ
sum
ขั้นตอนที่ 5: การคำนวณค่าเฉลี่ย
double avg = sum / (double) n;- เราคำนวณค่าเฉลี่ยโดยหารผลรวม (
sum) ด้วยจำนวนตัวเลขทั้งหมด (n) - เราแปลง
nเป็นdoubleเพื่อให้ผลลัพธ์เป็นเลขทศนิยม
ขั้นตอนที่ 6: การนับจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย
int aboveAvgCount = 0;
for (int i = 0; i < n; i++) {
if (numbers[i] > avg) {
aboveAvgCount++;
}
}- เราสร้างตัวแปร
aboveAvgCountเพื่อนับจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย - เราใช้ลูป
forอีกครั้งเพื่อวนผ่านทุกตัวเลขในอาร์เรย์numbers - ในแต่ละรอบ เราตรวจสอบว่าตัวเลขปัจจุบันมากกว่าค่าเฉลี่ยหรือไม่
- ถ้ามากกว่า เราเพิ่มค่า
aboveAvgCountขึ้น 1
ขั้นตอนที่ 7: การแสดงผลลัพธ์
System.out.println("AVG: " + avg);
System.out.println("No. above the AVG: " + aboveAvgCount);- เราใช้
System.out.printlnเพื่อแสดงผลลัพธ์ - บรรทัดแรกแสดงค่าเฉลี่ย (
avg) - บรรทัดที่สองแสดงจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย (
aboveAvgCount)
ปรับปรุงล่าสุด