Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C สร้างอาร์เรย์แบบไดนามิกและหาผลรวมองค์ประกอบ


คำอธิบายปัญหา

สมมติว่าเรามีตัวเลข n เราต้องสร้างอาร์เรย์ขนาด n แบบไดนามิก (Dynamic Memory Allocation) รับค่าองค์ประกอบ n ค่า แล้วหาผลรวม ใช้ malloc() หรือ calloc() จาก stdlib.h ค่า n ก็รับมาจาก stdin เช่นกัน

ตัวอย่าง

หากอินพุตเป็น n = 6 และองค์ประกอบ 9, 8, 7, 2, 4, 3 ผลลัพธ์จะเป็น 33 เพราะ 9+8+7+2+4+3 = 33

ขั้นตอนการแก้ปัญหา

  1. กำหนด sum = 0
  2. รับค่า n จากผู้ใช้
  3. จัดสรรหน่วยความจำให้อาร์เรย์ arr ขนาด n ด้วย malloc()
  4. วนลูปรับค่าแต่ละองค์ประกอบเก็บใน arr[i]
  5. วนลูปบวกค่าทุกอย่างใน arr[i] เข้า sum
  6. พิมพ์ผลรวม

โค้ดตัวอย่าง

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr;
    int n;
    int sum = 0;
    scanf("%d", &n);
    arr = (int*) malloc(n * sizeof(int));
    for (int i = 0; i < n; i++) {
        scanf("%d", (arr + i));
    }
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }
    printf("%d", sum);
    free(arr); // ควรคืนหน่วยความจำหลังใช้งาน
    return 0;
}

อินพุต

6 9 8 7 2 4 3

เอาต์พุต

33