Yêu cầu:
– Xóa phần tử có giá trị lớn nhất trong mảng.
Thuật toán:
– Tìm vị trí của phần tử lớn nhất trong mảng.
– Xóa phần tử đó bằng cách dồn các phần tử đi sau nó: A[i] = A[i+1]
Code:
/************************************************************
#include <stdio.h>
#include <conio.h>
void print_arr(int A[], int n);
void del_max_in_arr(int A[], int* n);
void main()
{
int A[] = {1, 4, -9, 0, 7, 11, 8, 4};
int n = sizeof(A)/sizeof(int);
print_arr(A, n);
del_max_in_arr(A, &n);
print_arr(A, n);
getch();
}
void del_max_in_arr(int A[], int* n)
{
int i;
int max_pos = 0;
int max = A[0];
// find max value and position's
for(i = 1; i < *n; i++)
{
if(max < A[i])
{
max = A[i];
max_pos = i;
}
}
for(i = max_pos; i < *n; i++)
{
A[i] = A[i+1];
}
(*n)--;
}
void print_arr(int A[], int n)
{
int i;
printf("\n=========================");
for(i = 0; i < n; i++)
{
printf("\nA[%d] = %d", i, A[i]);
}
printf("\n=========================");
}
Kết quả:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
========================= A[0] = 1 A[1] = 4 A[2] = -9 A[3] = 0 A[4] = 7 A[5] = 11 A[6] = 8 A[7] = 4 ========================= ========================= A[0] = 1 A[1] = 4 A[2] = -9 A[3] = 0 A[4] = 7 A[5] = 8 A[6] = 4 ========================= |
Leave a Reply