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

โปรแกรม C เพิ่มสมาชิกในอาร์เรย์ด้วย Pointers

ปัญหา: แทรกสมาชิกใหม่เข้าไปในอาร์เรย์ที่ตำแหน่งที่กำหนด

รับขนาดอาร์เรย์ n, ค่าสมาชิก, ตำแหน่ง len (1-based) และค่าใหม่ ele แทรก ele ที่ len เลื่อนสมาชิกเดิมขวา 1 ช่อง ถ้า len > n แสดง "Invalid Input"

อัลกอริทึม

  1. อ่าน n, จัดสรรหน่วยความจำ
  2. อ่านค่าสมาชิก n ค่า
  3. อ่านตำแหน่ง len และค่าใหม่ ele
  4. ถ้า len ≤ n: พิมพ์สมาชิก 0 ถึง len-2, พิมพ์ ele, พิมพ์สมาชิก len-1 ถึง n-1
  5. มิฉะนั้น "Invalid Input"

โค้ด C

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

void insert(int n1, int *a, int len, int ele) {
    int i;
    printf("Array elements after insertion is:\n");
    for (i = 0; i < len - 1; i++) {
        printf("%d\n", *(a + i));
    }
    printf("%d\n", ele);
    for (i = len - 1; i < n1; i++) {
        printf("%d\n", *(a + i));
    }
}

int main() {
    int *a, n1, i, len, ele;
    printf("enter size of array elements: ");
    scanf("%d", &n1);
    a = (int*)malloc(n1 * sizeof(int));
    printf("enter the elements:\n");
    for (i = 0; i < n1; i++) {
        scanf("%d", a + i);
    }
    printf("enter the position where the element need to be insert:\n");
    scanf("%d", &len);
    if (len <= n1) {
        printf("enter the new element that to be inserted: ");
        scanf("%d", &ele);
        insert(n1, a, len, ele);
    } else {
        printf("Invalid Input");
    }
    return 0;
}

ตัวอย่าง Output

enter size of array elements: 5
enter the elements:
1 3 5 7 2
enter the position where the element need to be insert: 5
enter the new element that to be inserted: 9
Array elements after insertion are:
1
3
5
7
9
2