网站开发checklist,长沙企业建站程序,wordpress博客 centtos,网站主要栏目题目#xff1a;
给定一个顺序存储的线性表#xff0c;请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储#xff0c;并且相对位置不能改变。
函数接口定义#xff1a; int Delete( int A[], int L, int minA, int maxA );其中A是整型数…题目
给定一个顺序存储的线性表请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储并且相对位置不能改变。
函数接口定义 int Delete( int A[], int L, int minA, int maxA );其中A是整型数组存储原始线性表的元素L是表长即A中元素的个数minA和maxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于maxA的元素删除同时保证表中剩余元素保持顺序存储并且相对位置不变最后返回删除后的表长。
裁判测试程序样例 #include stdio.h#define MAXN 20int Delete( int A[], int L, int minA, int maxA );int main()
{int A[MAXN], L, minA, maxA, i;scanf(%d, L);for (i0; iL; i) scanf(%d, A[i]);scanf(%d %d, minA, maxA);L Delete(A, L, minA, maxA);for (i0; iL; i) printf(%d , A[i]);printf(\n);return 0;
}/* 你的代码将被嵌在这里 */输入样例
10 4 -8 2 12 1 5 9 3 3 10 0 4
输出样例
4 -8 12 5 9 10
先上错误代码①
int Delete( int A[], int L, int minA, int maxA )
{int i,k,hL;for(i0;ih;i){if(A[i]maxAA[i]minA){for(ki1;kh;k){A[k-1]A[k];}hL-1;}}return h;
}第一次的错因还不清楚
上错误代码②
int Delete( int A[], int L, int minA, int maxA ){int b[L],i,k;for(i0,k0;iL;i){if(A[i]minA||A[i]maxA){b[k]A[i];k;}}for(i0;i k;i)A[i]b[i];return k1 ;}
哈哈哈注意k最后是多加了个一。 改完后20分 int Delete( int A[], int L, int minA, int maxA ){int b[L],i,k;for(i0,k0;iL;i){if(A[i]minA||A[i]maxA){b[k]A[i];k; //!!!!!!!!!!}}for(i0;i k;i)//!!!!!! k{A[i]b[i];}return k ;//!!! k}