Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่าเฉลี่ยของกระแสตัวเลขใน C++


เฉลี่ย ของตัวเลข คือ ผลรวมของตัวเลขหารด้วยจำนวนทั้งหมด

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

มาดูตัวอย่างการทำงานกัน −

เรามีสตรีม 5 เบอร์ 24 , 76 , 29, 63 , 88

ค่าเฉลี่ยในแต่ละจุดของกระแสน้ำจะเป็น −

24 , 50 , 43 , 48 , 56.

สำหรับสิ่งนี้ เราจะหาค่าเฉลี่ยของสตรีมทุกครั้งที่มีการเพิ่มตัวเลขลงในสตรีม ดังนั้น เราต้องหาค่าเฉลี่ยของ 1 หมายเลข , 2 ตัวเลข , 3 ตัวเลข และอื่นๆ เราจะใช้ค่าเฉลี่ยก่อนหน้าสำหรับสิ่งนี้

อัลกอริทึม

Step 1 : for i -> 0 to n (length of stream).
Step 2 : find the average of elements using formula :
   Average = (average * i) + i / (i+1)
Step 3 : print average.

ตัวอย่าง

#include <iostream>
using namespace std;
int main(){
   int arr[] = { 24 , 76 , 29, 63 , 88 };
   int average = 0;
   int n = sizeof(arr) / sizeof(arr[0]);
   for(int i = 0 ; i< n ; i++){
      average = ((average * i) + arr[i]) / (i+1);
      cout<<"The average of "<<i+1<<" numbers of the stream is "<<average<<endl;
   }
   return 0;
}

ผลลัพธ์

The average of 1 numbers of the stream is 24
The average of 2 numbers of the stream is 50
The average of 3 numbers of the stream is 43
The average of 4 numbers of the stream is 48
The average of 5 numbers of the stream is 56

อัลกอริทึมเดียวกันนี้ใช้ได้กับข้อมูลทุกประเภท และสามารถใช้คำนวณค่าเฉลี่ยของสตรีมได้ทุกจุด