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:
/************************************************************
#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ả:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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