问题描述:
del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:
int del (int a[10],int n,int x)(1)请实现这个函数,并完成测试。
(2)如果在函数调用时,要求数组中的元素呈升序排列呢?
#include "stdafx.h"int del(int a[], int n, int x);void single_del(int a[], int n, int x);void sort(int a[], int n);void show_array(int a[], int n);int main(){ int n; int a[] = { 27, 61, 49, 88, 4, 20, 28, 31, 49, 42, 62, 49, 64, 14, 88, 27, 73 }; n = del(a, 17, 49); show_array(a, n); printf("\n"); sort(a,n); show_array(a, n); return 0;}int del(int a[], int n, int x){ int dele_time(0); for (int i = 0; i < n; i++) { if (a[i] == x) { dele_time++; } } for (int i = 0; i < dele_time; i++) { single_del(a, n, x); n--; } return n;}void single_del(int a[], int n, int x) //★★★{ int seri; for (int i = 0; i < n; i++) { if (a[i] == x) { seri = i; break; } } for (int i = seri; i < n-1; i++) { a[i] = a[i + 1]; }}void sort(int a[], int n) //选择排序算法{ int i, j, med; for ( i = 0; i < n-1; i++) { int k = i; for ( j = i+1; j < n; j++) { if (a[j]
=