问题及代码:
运行结果:
删除有序数列中的某数。
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:number.cpp
*作 者:单昕昕
*完成日期:2015年2月12日
*版 本 号:v1.0
*
*问题描述:删除有序数列中的某数并输出。
*程序输入:一个数。
*程序输出:删除有序数列中的某数后所得的数组。
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class BubbleSort
{
//打印数组
public static void DisplayArray(int[] A)
{
foreach (int i in A)
Console.Write("{0,5}", i);
Console.WriteLine();
}
static void Main()
{
int i,k;
int[] A = new int[] { 23, 45, 78, 98, 120, 156, 185, 200 };
Console.Write("初始数组:");
DisplayArray(A);
Console.Write("\n请输入要删除的数:");
int x = int.Parse(Console.ReadLine());
int N = A.Length-1;
for (k = 0;k <= N ; k++)
{
if (x == A[k])
break;
}
if (k==N+1)
{
Console.WriteLine("数组中查无此数,无法删除!");
return;
}
if(k==N)
{
A[N] = Convert.ToChar(0);
}
for (i =k+1; i < N; i++)
A[i-1] = A[i];
Console.Write("\n删除{0}后的数组:",x);
DisplayArray(A);
Console.WriteLine();
}
}
}
运行结果:
删除有序数列中的某数。
学习心得:
在这种覆盖删除的情况下,如果想删除最后一个数就得单独考虑,比较麻烦而且实现方法不好。
如果可以,就直接用一个新数组保存删除后的数组就行了。