Я пытаюсь удалить отрицательные числа из массива со следующим кодом. К сожалению, не получить результаты. Он просто печатает первый элемент снова и снова. Может кто-нибудь, пожалуйста, дайте мне знать, где я иду не так?Удалить отрицательные числа из массива в C
#include <stdio.h>
void removenegative(int a[],int *p, int *q);
int main()
{
int a[] = {2, 3, -5, -7, 6, 9};
int i;
int *p, *q;
p = a;
q = a+6-1;
removenegative(a, p,q);
for(i=0;i<6;i++)
{
printf("%2d", *p);
}
printf("\n");
}
void removenegative(int a[],int *p, int *q)
{
int *x;
x= &a[0];
while (p<=q)
{
if (*p>=0)
{
*x = *p;
x++;
}
p++;
}
for(; x<=q; x++)
{
*x = -1;
}
}
был избит на 5 секунд. ;-) –
@ 0xF1 У вас было немного лучше, так что +1 :) – Guido
то же самое 2 вас! и веселое рождество !! ;-) –