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:
/************************************************************ * Author: VNCODING * History * 2014/10/23 first create VNCODING *************************************************************/ #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ả:
========================= 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
You must be logged in to post a comment.