主题:急,两道小题,麻烦高手帮忙做做~
kobefisher
[专家分:0] 发布于 2009-08-24 13:21:00
习题1,输入一个长度为n(n<100)的数组,实现对数组的下列操作(i为索引值,就是数组下标)。
a 在第i位,插入值为j的数,数组大小增加1;
b 删除第i位的值,数组大小减小1;
c 返回数组第i位的值;
d 返回值k是否存在于数组中,若存在返回下标值,不存在返回-1;
e 返回数组中大于k(或小于k)的值的子数组;
要求:将操作尽量组织为方法、函数,注意输入参数和返回值;
习题2,综合性的顺序表操作系统。
要求:Console控制台操作系统,实现数组管理;
操作类型:数组元素的增加、修改、删除、查询(指定值索引、范围查询);
包括用户操作选择。
界面功能列表(参考):
您需要的操作:
1、数组初始化;
2、增加数组元素;
3、删除数组元素;
4、查询数组元素;
5、退出系统;
回复列表 (共1个回复)
沙发
jok1 [专家分:0] 发布于 2009-09-05 23:41:00
这是第1个大题的答案,第2个感觉很相似,我就不写了。
using System.Collections;
public static int[] insert(int i, int j, int[] intArr)
{
ArrayList arrlist =new ArrayList(intArr);
for (int k = 0; k < arrlist.Count; k++)
{
if (k == i)
{
arrlist.Insert(i, j);
break;
}
}
int[] newArr = (int[])arrlist.ToArray(typeof(int));
return newArr;
}
static int[] delete(int i, int[] intArr)
{
ArrayList arrlist = new ArrayList(intArr);
for (int k = 0; k < arrlist.Count; k++)
{
if (k == i)
{
arrlist.RemoveAt(i);
break;
}
}
int[] newArr = (int[])arrlist.ToArray(typeof(int));
return newArr;
}
static int getValue(int i, int[] intArr)
{
return intArr[i];
}
static int Cotain(int i, int[] intArr)
{
for (int k=0; k<intArr.Length;k++)
{
if ((int)intArr.GetValue(k)==i)
{
return k;
}
}
return -1;
}
static int[] OverK(int k, int[] intArr)
{
ArrayList arrlist = new ArrayList();
for (int i = 0; i < intArr.Length; i++)
{
if (intArr[i] < k)
{
arrlist.Add(intArr[i]);
}
}
return (int[])arrlist.ToArray(typeof(int));
}
我来回复