删除数组中指定的数字
题目:
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
代码实现如下
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,2,5 };
int sz = sizeof(arr) / sizeof(arr[0]);
int del = 0;
scanf("%d", &del);
int i = 0;
printf("删除前->");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
int j = 0;
for (i = 0; i < sz; i++)
{
if (arr[i] != del)
{
arr[j] = arr[i];
j++;
}
}
printf("删除后->");
for (i = 0; i < j; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
这里还有一种更简单粗暴的方法
直接遍历数组,不是指定数字就打印
否则跳过
代码实现如下
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,2,5 };
int sz = sizeof(arr) / sizeof(arr[0]);
int del = 0;
scanf("%d", &del);
int i = 0;
printf("删除前->");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
printf("删除后->");
for (i = 0; i < sz; i++)
{
if (del != arr[i])
{
printf("%d ", arr[i]);
}
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)