Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tính trung bình các phần tử mảng trong C#

Tính trung bình mảng: tổng các phần tử / số phần tử. Dùng LINQ Average() hoặc vòng lặp.

Ví dụ minh họa

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] arr = { 45, 23, 55, 15, 8, 4, 2, 5, 9, 14 };
        
        // Cách 1: LINQ (ngắn gọn)
        double avgLinq = arr.Average();
        Console.WriteLine($"LINQ Average: {avgLinq:F2}");
        
        // Cách 2: Vòng lặp (hiểu bản chất)
        long sum = 0;
        foreach (int x in arr) sum += x;
        double avgLoop = (double)sum / arr.Length;
        Console.WriteLine($"Vòng lặp: {avgLoop:F2}");
        
        // Cách 3: Tính tổng trước, rồi chia (tránh chia nguyên)
        int sumInt = arr.Sum(); // LINQ Sum
        double avg = (double)sumInt / arr.Length;
        Console.WriteLine($"Sum/Length: {avg:F2}");
        
        // Hiển thị chi tiết
        Console.WriteLine($"\nTổng: {sumInt}");
        Console.WriteLine($"Số phần tử: {arr.Length}");
        Console.WriteLine($"Trung bình: {avg:F2}");
    }
}

Kết quả đầu ra

LINQ Average: 18.00
Vòng lặp: 18.00
Sum/Length: 18.00

Tổng: 180
Số phần tử: 10
Trung bình: 18.00

Lưu ý quan trọng: Phép chia nguyên int / int cắt phần thập phân. Phải ép kiểu: (double)sum / length hoặc sum / (double)length. Code gốc trong bài viết đặt average = sum / len bên trong vòng lặp - sai logic (tính trung bình từng bước).