다음 코드를 사용하여 배열에서 음수를 제거하려고합니다. 불행히도 결과를 얻지 못했습니다. 단지 첫 번째 요소를 반복해서 인쇄합니다. 누군가 내가 잘못 가고 있는지 알려주실 수 있습니까?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! 메리 크리스마스! ;-) –