ในปัญหานี้ เราได้รับอาร์เรย์ 2 มิติขนาด n*n งานของเราคือสร้างโปรแกรมที่จะพิมพ์ค่ากลางและค่ามัธยฐานของเมทริกซ์ในภาษา C++
ค่าเฉลี่ย คือค่าเฉลี่ยของวันที่ที่ตั้งไว้ ในเมทริกซ์ ค่าเฉลี่ยคือค่าเฉลี่ยขององค์ประกอบทั้งหมดของเมทริกซ์
ค่าเฉลี่ย =(ผลรวมขององค์ประกอบทั้งหมดของเมทริกซ์)/(จำนวนองค์ประกอบของเมทริกซ์)
ค่ามัธยฐาน เป็นองค์ประกอบที่อยู่ตรงกลางสุดของชุดข้อมูลที่จัดเรียง สำหรับสิ่งนี้ เราจะต้องจัดเรียงองค์ประกอบของเมทริกซ์
ค่ามัธยฐานคำนวณเป็น
ถ้า n เป็นเลขคี่ มัธยฐาน =เมทริกซ์[n/2][n/2]
ถ้า n เป็นเลขคู่ มัธยฐาน =((เมทริกซ์[(n-2)/2][n-1])+(เมทริกซ์[n/2][0]))/2
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#include <iostream> using namespace std; const int N = 4; int calcMean(int Matrix[][N]) { int sum = 0; for (int i=0; i<N; i++) for (int j=0; j<N; j++) sum += Matrix[i][j]; return (int)sum/(N*N); } int calcMedian(int Matrix[][N]) { if (N % 2 != 0) return Matrix[N/2][N/2]; if (N%2 == 0) return (Matrix[(N-2)/2][N-1] + Matrix[N/2][0])/2; } int main() { int Matrix[N][N]= { {5, 10, 15, 20}, {25, 30, 35, 40}, {45, 50, 55, 60}, {65, 70, 75, 80}}; cout<<"Mean of the matrix: "<<calcMean(Matrix)<<endl; cout<<"Median of the matrix : "<<calcMedian(Matrix)<<endl; return 0; }
ผลลัพธ์
Mean of the matrix: 42 Median of the matrix : 42