Yêu cầu:
– Chèn phần tử X vào tất cả các phần tử chẵn trong mảng.
Thuật toán:
– Tìm vị trí các phần tử chẵn trong mảng và chèn X vào sau các phần tử chẵn
Code:
/************************************************************ * Author: VNCODING * History * 2014/11/14 first create VNCODING *************************************************************/ #include "stdio.h" #include "conio.h" void insert_behind_even(int A[], int *n, int x); void print_arr(int A[], int n); void main( void ) { //int A[] = {1, -9, 0, 12, 34, 5, 12, -7, 9, -8}; //int A[] = {1, -9, 13, 27, 5, 9, 2, 10, 12, 27}; int A[] = {1, -2, 5, 6, 8, 13, 4, 10}; int len = sizeof(A)/sizeof(int); //insert 0 after each maximum element of array printf("\nMang truoc khi chen 0"); print_arr(A, len); insert_behind_even(A, &len, 0); printf("\nMang sau khi chen 0"); print_arr(A, len); getch(); } // Append x to max value void insert_behind_even(int A[], int *n, int x) { int i, j; for(i = *n - 1; i >= 0; i--) { if(A[i]%2 == 0) { (*n)++; for(j = *n - 1; j > i; j--) { A[j] = A[j-1]; } A[j+1] = x; } } } // Display array void print_arr(int A[], int n) { int i; for(i = 0; i < n; i++) { printf("\nA[%d] = %d", i, A[i]); } }
Kết quả:
Mang truoc khi chen 0 A[0] = 1 A[1] = -2 A[2] = 5 A[3] = 6 A[4] = 8 A[5] = 13 A[6] = 4 A[7] = 10 Mang sau khi chen 0 A[0] = 1 A[1] = -2 A[2] = 0 A[3] = 5 A[4] = 6 A[5] = 0 A[6] = 8 A[7] = 0 A[8] = 13 A[9] = 4 A[10] = 0 A[11] = 10 A[12] = 0
Leave a Reply
You must be logged in to post a comment.