Đề bài: nhập vào n số nguyên, chương trình tìm số âm đầu tiên và xóa phần tử này, sau đó sắp xếp lại dãy-->in ra màn hình. Em code như sau đây nhưng chương trình bị lỗi: xóa được số âm đầu tiên, in ra dãy mới ko có số âm đó nhưng nó lại tự chèn thêm số 0 ở cuối.
Code:
#include <stdio.h>
int i,n;
int a[100];
void remove (int ,int );
int main (void)
{
do
{
printf("Co bao nhieu so?\n");
scanf("%d",&n);
}while(n<=0);
for(i=0;i<n;i++)
{
printf("Nhap so #%d\n",i+1);
scanf("%d",&a[i]);
}
remove (i,n);
printf("Day moi sau khi xoa so am dau tien:\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
return 0;
}
void remove (int i,int n)
{
int j;
for(i=0;i<n;i++)
if(a[i]<0)
{
for(j=0;j<n;j++)
a[j]=a[j+1];
i--;
break;
}
}
Mọi người code cho em lun đoạn này nhá ( giải thích càng tốt).
Cho em hỏi thêm 1 câu là: Muốn tạo ra 1 hàm để xóa tất cả các số âm trong dãy rùi sắp xếp ra dãy mới thì làm thế nào ạh?