Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình cho giá trị trung bình có trọng số của các số tự nhiên trong C ++


Cho một mảng số tự nhiên và một mảng nữa chứa trọng số của các số tự nhiên tương ứng và nhiệm vụ là tính giá trị trung bình có trọng số của các số tự nhiên.

Có một công thức được sử dụng để tính giá trị trung bình có trọng số của các số tự nhiên.

$$ \ overline {x} =\ frac {\ displaystyle \ sum \ limit_ {i =1} ^ n (x_ {i *} w_ {i})} {\ displaystyle \ sum \ limit_ {i =1} ^ n w_ {i}} $$

Trong đó, x là số tự nhiên và w là trọng số liên quan đến số tự nhiên đó.

Đầu vào

X[] = {11, 22, 43, 34, 25, 16}
W[] = {12, 12, 43, 54, 75, 16}

Đầu ra

weighted mean is : 29.3019

Giải thích

(11*12 + 22*12 + 43*43 + 34*54 + 25*75 + 16*16) / (12 + 12 + 43 + 54 +75 +16)

Đầu vào

X[] = {3, 4, 5, 6, 7}
W[] = {4, 5, 6, 7, 8}

Đầu ra

weighted mean is : 5.33333

Giải thích

(3*4 + 4*5 + 5*6 + 6*7 + 7*8) / (4 + 5 + 6 + 7 + 8)

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập hai mảng khác nhau, một mảng dành cho các số tự nhiên và một mảng khác cho trọng số của các số tự nhiên tương ứng.

  • Áp dụng công thức để tính giá trị trung bình có trọng số của các số tự nhiên

  • In kết quả tương ứng.

Thuật toán

Start
Step1→ declare function to calculate weighted means of natural numbers
   float weightedmean(int X[], int W[], int size)
      Declare int sum = 0, weight = 0
      Loop For int i = 0 and i < size and i++
         Set weight = weight + X[i] * W[i]
         Set sum = sum + W[i]
      End
      return (float)weight / sum
Step 2→ In main()
   Declare int X[] = {11, 22, 43, 34, 25, 16}
   Declare int W[] = {12, 12, 43, 54, 75, 16}
   Declare int size_X = sizeof(X)/sizeof(X[0])
   Declare int size_W = sizeof(W)/sizeof(W[0])
   IF (size_X == size_W)
      Call weightedmean(X, W, size_X)
   End
   Else
      Print -1
   End
Stop

Ví dụ

#include<bits/stdc++.h>
using namespace std;
//calculate weighted mean.
float weightedmean(int X[], int W[], int size){
   int sum = 0, weight = 0;
   for (int i = 0; i < size; i++){
      weight = weight + X[i] * W[i];
      sum = sum + W[i];
   }
   return (float)weight / sum;
}
int main(){
   int X[] = {11, 22, 43, 34, 25, 16};
   int W[] = {12, 12, 43, 54, 75, 16};
   int size_X = sizeof(X)/sizeof(X[0]);
   int size_W = sizeof(W)/sizeof(W[0]);
   if (size_X == size_W)
      cout<<"weighted mean is : "<<weightedmean(X, W, size_X);
   else
      cout << "-1";
   return 0;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

weighted mean is : 29.3019