Skip to Content
CoursesCSC102หาค่าเฉลี่ยและจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย

หาค่าเฉลี่ยและจำนวนตัวเลขที่มากกว่าค่าเฉลี่ย

โจทย์

เขียนโปรแกรมที่ใช้อาร์เรย์ในการแก้ปัญหาต่อไปนี้: อ่านรายการของตัวเลขที่กำหนด คำนวณค่าเฉลี่ยของตัวเลขเหล่านี้ และหาจำนวนรายการที่มีค่ามากกว่าค่าเฉลี่ย โปรแกรมของคุณควรแสดงค่าเฉลี่ยและนับจำนวนของตัวเลขที่มีค่ามากกว่าค่าเฉลี่ย

InputOutput
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)
ปรับปรุงล่าสุด