1.题目描述
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
数据范围:序列长度和序列中的值都满足1≤n≤50。
输入描述:
第一行输入一个整数(0<N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。
输出描述:
输出为一行,删除指定数字之后的序列。
2.题目分析
分析:创建一个数组int arr[]保存手动输入的数字。
创建两个int类型变量i j,其中使用arr[i]、arr[j]遍历该数组,并使用arr[j]保存没有被删除的数据。具体分析过程如图所示。
完整代码:
int main()
{
int n = 0;
scanf("%d", &n);//输入一个数字n,代表有n个数字
int arr[50];//创建一个数组,来接收要输入的数字
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int del = 0;
scanf("%d", &del);//输入一个要被删除的数字
int j = 0;//j作为下标锁定的位置就是用来存放不删除的数据
for (i = 0; i < n; i++)
{
if (arr[i] != del)
{
arr[j++] = arr[i];
}
}
for (i = 0; i < j; i++)
{
printf("%d", arr[i]);
}
}