Em đã có viết code nhưng nó lại chạy giữa chừng rồi đứng khựng lại và không báo lỗi gì. Ý tưởng của e là e sắp xếp mảng giảm dần rồi đếm phần tử âm sau đó trừ phần tử lẻ ra r in ra thôi ạ. E cảm ơn ạ.
#include <stdio.h>
#include <conio.h>
#define MAX 500
void nhapMang(int &n, double a[]);
void xuatMang(int n, double a[]);
void xepMangGiam(int n, double a[]);
int demPTAm(int n, double a[]);
void xoaPTAm(int &n, double a[]);
void main()
{
int n;
double a[MAX];
nhapMang(n, a);
xoaPTAm(n, a);
xuatMang(n, a);
getch();
}
void nhapMang(int &n, double a[])
{
do
{
printf("Nhap do lon mang : ");
scanf("%d", &n);
}while(n <= 0);
for(int i = 0 ; i < n ; i++)
{
printf("\na[%d]: ", i + 1);
scanf("%lf", &a[i]);
}
}
void xuatMang(int n,double a[])
{
for(int i = 0 ; i < n ; i++)
printf("%lf\t", a[i]);
}
void xepMangGiam(int n, double a[])
{
int j;
double temp;
for(int i = 1 ; i < n ; i++)
{
temp = a[i];
j = i--;
while(temp > a[j] && j >= 0)
{
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}
int demPTAm(int n, double a[])
{
int dem = 0;
for(int i = 0 ; i < n ; i++)
{
if(a[i] < 0)
dem++;
}
return dem;
}
void xoaPTAm(int &n, double a[])
{
xepMangGiam(n, a);
n = n - demPTAm(n, a);
}
đây là code của e ạ !! Mong mọi người giúp đỡ
update: Khi e chuyển qua xài sắp xếp bằng cái Selection Soft thì được nhưng sao cái Insertion Soft lại không được nhỉ ?