C语言 编写程序,在一个整型数组中查找某个数并将其删除。(要求用指针)

2024-11-07 10:52:37
推荐回答(2个)
回答(1):

写了个,全都用指针。

#include
int main ()
{
    int a[10], n;
    int *p1, *p2;

    printf("Input 10 numbers: ");
    for(p1 = a; p1 < a + 10; p1++)
        scanf("%d", p1);

    printf("Input number: ");
    scanf("%d", &n);
    for(p1 = a; p1 < a + 10; p1++)
    {
        if(*p1 == n)
        {
            for(p2 = p1 + 1; p2 < a + 10; p2++)
                *(p2 - 1) = *p2;
            break;
        }
    }

    if(p1 == a + 10)
    {
        printf("Not found!\n");
    }
    else
    {
        printf("Found!\nThe new array: ");
        for(p1 = a; p1 < a + 9; p1++)
            printf("%d ", *p1);
    }

    return 0;
}

回答(2):

#include
#include
#include
int main()
{
int i,*p,a[5]={1,2,3,4,5};
p=&a[0];
int num,count;
printf("请输入要删除的数字\n");
scanf("%d",&num);
for(i=0;i<5;i++)
{
if(*p++==num)
{
count=i;
}
}
p=&a[0];
for(i=count;i<4;i++)
{
*(p+i)=*(p+i+1);
*(p+i+1)=NULL;
}
p=&a[0];
for(i=0;i<5;i++)
{
if(a[i]!=0)
{
printf("%d\n",*p++);
}
}
}