ปัญหา: แทรกสมาชิกใหม่เข้าไปในอาร์เรย์ที่ตำแหน่งที่กำหนด
รับขนาดอาร์เรย์ n, ค่าสมาชิก, ตำแหน่ง len (1-based) และค่าใหม่ ele แทรก ele ที่ len เลื่อนสมาชิกเดิมขวา 1 ช่อง ถ้า len > n แสดง "Invalid Input"
อัลกอริทึม
- อ่าน n, จัดสรรหน่วยความจำ
- อ่านค่าสมาชิก n ค่า
- อ่านตำแหน่ง len และค่าใหม่ ele
- ถ้า len ≤ n: พิมพ์สมาชิก 0 ถึง len-2, พิมพ์ ele, พิมพ์สมาชิก len-1 ถึง n-1
- มิฉะนั้น "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