已知数组A=Array(7,6,5,1,8,5,3,9,4),编写一程序,删除数组中值为x(例如为3)的第一个元素。

要求用户从键盘输入x
不好意思忘说了 是VB 对不起

不知道你所要求的语言,只好先写一个C#程序,Java与之类似,C/C++就有差别了:

using System;

class Program
{
static void Main()
{
int[] arr = new int[] { 7, 6, 5, 1, 8, 5, 3, 9, 4 };
int key;
int i;

Console.Write("删除前:");
for (i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();

Console.Write("待删除数:");
key = int.Parse(Console.ReadLine());

if (Remove(ref arr, key) == true)
{
Console.WriteLine("删除 {0} 成功!", key);
}
else
{
Console.WriteLine("删除 {0} 失败,数组中不存在该元素!", key);
}

Console.Write("删除后:");
for (i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
}

//删除数组arr中值为key的第一个元素,若删除成功,返回true,否则返回false
static bool Remove(ref int[] arr, int key)
{
int i, j;
int len = arr.Length;

for (i = 0; i < len && arr[i] != key; i++) ;
if (i >= len)
{
return false;
}

for (j = i + 1; j < len; j++)
{
arr[j - 1] = arr[j];
}

Array.Resize(ref arr, len - 1);
return true;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-01
using System;

class Program
{
static void Main()
{
int[] arr = new int[] { 7, 6, 5, 1, 8, 5, 3, 9, 4 };
int key;
int i;

Console.Write("删除前:");
for (i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();

Console.Write("待删除数:");
key = int.Parse(Console.ReadLine());

if (Remove(ref arr, key) == true)
{
Console.WriteLine("删除 {0} 成功!", key);
}
else
{
Console.WriteLine("删除 {0} 失败,数组中不存在该元素!", key);
}

Console.Write("删除后:");
for (i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
}

//删除数组arr中值为key的第一个元素,若删除成功,返回true,否则返回false
static bool Remove(ref int[] arr, int key)
{
int i, j;
int len = arr.Length;

for (i = 0; i < len && arr[i] != key; i++) ;
if (i >= len)
{
return false;
}

for (j = i + 1; j < len; j++)
{
arr[j - 1] = arr[j];
}

Array.Resize(ref arr, len - 1);
return true;
}
}追问

谢谢你回答 不过我看不懂

第2个回答  2011-05-01
什么语言的数组呀?c#? 还是java ? php?

各自都自己的处理函数
第3个回答  2012-04-20
大佬!你早说是vb啊!后来人不会写啊!追问

对不起

追答

狂晕!后来又在网上找了半天才找到答案!其实我也想要这个作业的!嘿嘿嘿!