题目:输入五个数,输入要删除的数字,打印剩余结果
法一:双指针法
原理:
i向右移动,把符合条件的存入arr[j]中。相当于自身的覆盖。
图中要删除的是数字3,当i经过3时,i为3,此时j不接受,j仍然为2;
而当i经过4时,i为4,j接收,j此时为3;
最后遍历打印数组,范围是j的个数
法二:普通法(for遍历 if判断)
代码语言:javascript复制#include<stdio.h>
#include<string.h>
int main()
{
int i = 0;
int j = 0;
int arr[5] = {0};
for (i = 0; i < 5; i )
{
scanf("%d", &arr[i]);
}
int del = 0;
scanf("%d",&del);
//法一
for (i = 0; i < 5; i )
{
if (arr[i] != del)
{
arr[j] = arr[i];
j ;
}
}
for (i = 0; i < j; i )
{
printf("%d", arr[i]);
}
//法二
/*for (i = 0; i < 5; i )
{
if (arr[i] != del)
printf("%d", arr[i]);
}*/
return 0;
}