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

1 June 2021

ค่าเฉลี่ยของตัวเลข (Average) คือผลรวมของตัวเลขหารด้วยจำนวนตัวเลขทั้งหมดที่ต้องการนำมาหาค่าเฉลี่ย ค่าเฉลี่ยเป็นค่าทางสถิติเพื่อใช้แสดงถึงความนิยมหรือค่ากลางของข้อมูล ยกตัวอย่างเช่น การคำนวณหาอายุเฉลี่ยของคนกลุ่มหนึ่งที่สนใจฟังเพลงป๊อป ทำให้เราสามารถทราบได้ว่าเพลงประเภทนี้ได้รับความสนใจจากคนในช่วงอายุไหน เป็นต้น

ในบทเรียนนี้ คุณจะได้เรียนเรู้การเขียนโปรแกรมเพื่อหาค่าเฉลี่ยของตัวเลขในภาษา C และ C++ เนื่องจากทั้งสองภาษามีโครงสร้างที่คล้ายกัน ดังนั้นในการอธิบายโค้ดการทำงานของโค้ดจะใช้ของภาษา C เป็นหลัก

ก่อนเริ่มบทเรียน เราหวังว่าคุณจะเข้าใจการทำงานของคำสั่ง for loop และอาเรย์ในพื้นฐาน เนื่องจากเราจะใช้มันในบทเรียน และนี่เป็นเนื้อหาในบทนี้

  • การหาค่าเฉลี่ยของตัวเลข
  • การหาค่าเฉลี่ยจากตัวเลขในอาเรย์

การหาค่าเฉลี่ยของตัวเลข

การหาค่าเฉลี่ยของตัวเลขนั้นมีสูตรที่แน่นอน กำหนดให้เซ็ต S ประกอบไปด้วยตัวเลขจำนวน N ตัว ดังนั้นค่าเฉลี่ยของตัวเลขในเซ็ตนี้สามารถคำนวณได้จาก ผลรวมของตัวเลขในเซ็ต S หารด้วย N และนี่เป็นสูตรของการหาค่าเฉลี่ยในทางคณิตศาสตร์

ค่าเฉลี่ย = (S1 + S2 + S3 + ... + Sn) / N

จากสูตรคำนวณหาค่าเฉลี่ยข้างต้น เราสามารถนำมาใช้ประยุกต์ใช้ในการเขียนโปรแกรมได้ สำหรับตัวอย่างแรกในบทนี้ มาเขียนโปรแกรมเพื่อหาค่าเฉลี่ยของตัวเลข 3 ตัวในภาษา C และ C++ นี่เป็นตัวอย่างของโปรแกรม

average.c
#include <stdio.h>

int main()
{
    int a = 2, b = 3, c =6;
    int sum = a + b + c;
    float avg = sum / (float)3;
    printf("Average: %f", avg);
    return 0;
}
average.cpp
#include <iostream>

using namespace std;

int main()
{
    int a = 2, b = 3, c =6;
    int sum = a + b + c;
    float avg = sum / (float)3;
    cout << "Average: " << avg << endl;
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Average: 3.666667

ในตัวอย่างนี้ เป็นโปรแกรมสำหรับหาค่าเฉลี่ยของตัวเลขสามตัวที่ถูกประกาศและจัดเก็บไว้ในตัวแปร a, b และ c ในการหาค่าเฉลี่ยของตัวเลขเราต้องทราบผลรวมและจำนวนของตัวเลขทั้งหมดซึ่งก็คือ 3

int sum = a + b + c;

ในการคำนวณหาผลรวม เพียงแค่นำค่าในตัวแปรทั้งสามมาบวกกันด้วยตัวดำเนินการบวก (+) และผลรวมที่ได้ถูกเก็บได้ในตัวแปร sum ซึ่งคำสั่งมีการทำงานที่ตรงไปตรงมา

float avg = sum / (float)3;

เมื่อได้ผลรวมแล้ว คำนวณหาค่าเฉลี่ยโดยนำผลรวมจากตัวแปร sum หารด้วยจำนวนของตัวเลขทั้งหมดคือ 3 และในการหารตัวเลข สังเกตว่าเราได้แปลงตัวเลขเป็น float ก่อนเพื่อให้ได้ผลลัพธ์จากการหารเป็นตัวเลขทศนิยม

printf("Average: %f", avg);

สุดท้ายเราได้รับค่าเฉลี่ยของตัวเลขทั้งสามเก็บไว้ในตัวแปร avg และแสดงผลออกทางหน้าจอด้วยฟังก์ชัน printf นี่เป็นโปรแกรมหาค่าเฉลี่ยอย่างง่ายที่สามารถเขียนได้ในภาษา C และ C++

การหาค่าเฉลี่ยจากตัวเลขในอาเรย์

ในตัวอย่างที่ผ่านมา โปรแกรมจำกัดการทำงานกับเพียงสามตัวเลขเท่านั้น ในทางปฏิบัติ ข้อมูลที่ต้องการนำมาหาค่าเฉลี่ยอาจมีตั้งแต่ 1 - N จำนวน ดังนั้นเป็นเรื่องดีที่เราจะปรับปรุงโปรแกรมให้สามารถใช้หาค่าเฉลี่ยของตัวเลขเป็นจำนวนมากได้ เราสามารถใช้อาเรย์ร่วมกับคำสั่ง for loop เพื่อช่วยให้การทำงานดังกล่าวสำเร็จ

นี่เป็นตัวอย่างของโปรแกรมหาค่าเฉลี่ยในภาษา C และ C++ ที่รองรับการหาค่าเฉลี่ยกับจำนวนของข้อมูลที่กำหนดเองได้

average2.c
#include <stdio.h>

int main()
{
    int n;
    printf("How many numbers to compute for average? ");
    scanf("%d", &n);

    int numbers[n];
    for (int i = 0; i < n; i++) {
        printf("No %d: ", i + 1);
        scanf("%d", numbers[i]);
    }

    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += numbers[i];
    }

    float avg = sum / (float) n;
    printf("Average: %f", avg);
    return 0;
}
average2.cpp
#include <iostream>

using namespace std;

int main()
{
    int n;
    cout << "How many numbers to compute for average? ";
    cin >> n;

    int numbers[n];
    for (int i = 0; i < n; i++) {
        cout << "No " << i + 1 << ": ";
        cin >> numbers[i];
    }

    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += numbers[i];
    }

    float avg = sum / (float) n;
    cout << "Average: " << avg << endl;
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม ในตอนแรกใช้มันสำหรับหาค่าเฉลี่ยของสามตัวเลขเช่นเดียวกันกับในตัวอย่างที่ผ่านมา

How many numbers to compute for average? 3
No 1: 2
No 2: 3
No 3: 6
Average: 3.666667

จากนั้นลองรันโปรแกรมอีกครั้ง ในครั้งนี้เรากรอกจำนวนของตัวเลขที่ต้องการหาค่าเฉลี่ยนเป็น 10 นั่นหมายความว่าโปรแกรมจะถามให้กรอกอีก 10 ตัวเลขเพื่อนำมาหาค่าเฉลี่ย

How many numbers to compute for average? 10
No 1: 2
No 2: 15
No 3: 19
No 4: 8
No 5: 14
No 6: 17
No 7: 10
No 8: 7
No 9: 13
No 10: 9
Average: 11.400000

ในตอนนี้ โปรแกรมสามารถใช้เพื่อหาค่าเฉลี่ยกับจำนวนของตัวเลขเท่าไรก็ได้ เพียงแค่ระบุจำนวนที่ต้องการในตอนแรกที่โปรแกรมทำงาน ต่อไปเป็นการอธิบายการทำงานของโปรแกรม

int n;
printf("How many numbers to compute for average? ");
scanf("%d", &n);

ในตอนแรกเป็นการประกาศตัวแปร n ที่ใช้เก็บจำนวนของตัวเลขทั้งหมดเพื่อนำมาหาค่าเฉลี่ย เมื่อโปรแกรมเริ่มต้นทำงาน คุณจะถูกถามให้กรอกค่านี้จากทางคีย์บอร์ดด้วยฟังก์ชัน scanf และเก็บไว้ในตัวแปรดังกล่าว

int numbers[n];

ต่อมาเป็นการประกาศอาเรย์ numbers ที่มีขนาด n สำหรับเก็บตัวเลขจำนวน n ตัวเพื่อนำมาหาค่าเฉลี่ย การใช้อาเรย์จะช่วยให้เก็บตัวเลขเป็นจำนวนมากได้ในตัวแปรเดียว และตัวเลขถูกเก็บเป็นลำดับที่สามารถเข้าถึงค่าได้ผ่านทาง Index ของมัน

for (int i = 0; i < n; i++) {
    printf("No %d: ", i + 1);
    scanf("%d", &numbers[i]);
}

จากนั้นเป็นการใช้คำสั่ง for loop เพื่อวนรับค่าจำนวน n ค่า และนำมาเก็บไว้ในตัวแปรอาเรย์ ในการทำงานของลูปในแต่ละรอบ ตัวแปร i ได้ถูกใช้เป็น Index ของอาเรย์โดยเริ่มจาก 0 ถึง n -1 เพื่อการอ้างถึงค่าในอาเรย์สำหรับเก็บข้อมูล

int sum = 0;
for (int i = 0; i < n; i++) {
    sum += numbers[i];
}

เมื่อได้ค่าทั้งหมดมาเก็บไว้ในอาเรย์แล้ว ต่อไปเป็นการอ่านค่าจากในอาเรย์ numbers เพื่อนำมาหาผลรวม และเช่นเดิม เราใช้คำสั่ง for loop เพื่อวนอ่านค่าในอาเรย์ และนำแต่ละค่าในอาเรย์มาบวกรวมกันไว้ในตัวแปร sum

float avg = sum / (float) n;
printf("Average: %f", avg);

และสุดท้ายเป็นการคำนวณหาค่าเฉลี่ยโดยการนำค่าในตัวแปร sum หารด้วยจำนวนของตัวเลขทั้งหมดจากตัวแปร n และเก็บผลลัพธ์ไว้ในตัวแปร avg จากนั้นแสดงค่าเฉลี่ยของตัวเลขออกทางหน้าจอ

จากในตัวอย่างของโปรแกรมที่ได้รับการปรับปรุงนี้ จะเห็นว่ามันสามารถใช้สำหรับหาค่าเฉลี่ยของ 10, 20 หรือ 100 จำนวนก็ได้ และนี่เป็นวิธีที่โปรแกรมที่มีความยืดหยุ่นในการใช้งานควรจะเป็น และเช่นเดิมคุณยังสามารถใช้มันเพื่อหาค่าเฉลี่ยของสามตัวเลขได้

โปรแกรมนี้จะใช้กับตัวเลขจำนวนเต็มเท่านั้น เพราะประเภทข้อมูลที่ประกาศให้กับอาเรย์นั้นเป็น int ในกรณีที่คุณต้องการให้โปรแกรมทำงานกับตัวเลขทศนิยมได้ คุณสามารถเปลียนประเภทของตัวแปรในตอนประกาศเป็น float ยกตัวอย่างเช่น

float numbers[n];
...
float sum = 0;

นี่จะทำให้คุณสามารถใช้มันเพื่อหาค่าเฉลี่ยของตัวเลขอย่าง 1.5, 2.5 และ 5.0

ในบทนี้ คุณได้เรียนรู้การเขียนโปรแกรมเพื่อหาค่าเฉลี่ยในภาษา C และภาษา C++ เราได้พูดถึงความหมายและสูตรการคำนวณของค่าเฉลี่ย และการเขียนโปรแกรมที่สามารถคำนวณหาค่าเฉลี่ยกับจำนวนของตัวเลขเท่าไรก็ได้

บทความนี้เป็นประโยชน์หรือไม่? Yes · No