Problem G: 零起点学算法84——数组中删数II
#include<stdio.h>
#define maxsize 100
int main()
{
int n;int a[maxsize];
while(scanf("%d",&n)!=EOF)
{
//完成输入
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int m; int num=0;
scanf("%d",&m);
for(int i=1;i<=n;i++)
{
if(a[i]==m)
{
num=i;
break;
}
}
//记录当数组里有等于 这个数的下标值 注意break
if(num==0)
{
for(int i=1;i<=n;i++)
{
if(i==1)
printf("%d",a[i]);
else
printf("% d",a[i]);
}
}
//如果num还是初值的话 那就是该数组里面没有等于该数值的数
//那就原序输出
else if(num==1)
{
for(int i=2;i<=n;i++)
{
if(i!=n)
printf("%d ",a[i]);
else
printf("%d",a[i]);
}
}
//这里另起判断 当数组里面第一个数就相等的话 那么就直接从第二个开始输出
else
{
for(int i=1;i<=n;i++)
{
if(i!=num)
{
if(i!=1)
printf("% d",a[i]);
else
printf("%d",a[i]);
}
}
}
//其他情况 那么就是当i遇到之前记录的下标值的时候就跳过
printf("\n");
}
}