ইন্টিজার অ্যারের গড় বের করার পদ্ধতি পূর্বের আর্টিকেলের সমানই, কিন্তু এখানে ছোট অ্যারে এবং স্পষ্ট আউটপুট দেওয়া হয়েছে।
সম্পূর্ণ উদাহরণ
using System;
public class Program
{
public static void Main()
{
int[] myArr = new int[6] { 8, 4, 2, 5, 9, 14 };
int len = myArr.Length;
int sum = 0;
for (int i = 0; i < len; i++)
{
sum += myArr[i];
}
// গুরুত্বপূর্ণ: ডাবল কাস্ট করে ভাগ করুন
double average = (double)sum / len;
Console.WriteLine($"Sum = {sum}");
Console.WriteLine($"Average = {average}");
}
}
আউটপুট
Sum = 42
Average = 7
ত্বরিত সমাধান (LINQ)
using System.Linq;
int[] arr = { 8, 4, 2, 5, 9, 14 };
double avg = arr.Average(); // 7.0
int avgInt = (int)arr.Average(); // 7
অন্য পদ্ধতিগুলো
// Aggregate ব্যবহার
double avg = arr.Aggregate(0, (a, b) => a + b) / (double)arr.Length;
// Parallel (বড় অ্যারের জন্য)
double avgParallel = arr.AsParallel().Average();
// Span (মেমরি দক্ষ)
Span span = arr;
long sum = 0;
foreach (int v in span) sum += v;
double avgSpan = (double)sum / span.Length;
ইন্টিজার ডিভিশন বাগ এড়ানো (রিপিট)
// ভুল
int badAvg = sum / len; // যদি sum=43, len=6 → 7 (বাস্তবে 7.166)
// সঠিক
double goodAvg = (double)sum / len; // 7.166...
decimal preciseAvg = (decimal)sum / len; // 7.1666... (আরো প্রিসিজন)
সারসংক্ষেপ
- সামান্য ফরমুলা: `Sum / Count`
- ইন্টিজার অ্যারে হলেও গড় `double` বা `decimal` দিয়ে ক্যালকুলেট করুন
- LINQ `Average()` অটোমেটিক্যালি `double` রিটার্ন করে
- খালি অ্যারে চেক করুন: `arr.Length > 0 ? arr.Average() : 0`