Thứ Hai, 23 tháng 11, 2015

Code C - Sắp xếp các số chẵn về đầu mảng tăng dần, các số lẻ ở cuối mảng giảm dần, hoặc ngược lại, 0 ở giữa

 Dưới đây sẽ là hàm thực hiện việc sắp xếp chẵn đầu mảng tăng, lẻ cuối mảng giảm, 0 ở giữa và có thể tương tự với trường hợp ngược lại:

void is(int a[], int n)
{
   int i, j;
   for(i=0; i<n; i++)
       for(j=i+1; j<n; j++)
           if((a[i]%2!=0)&&(a[j]%2==0)||(a[i]==0&&a[j]%2==0))
                change(a[i],a[j]);
   for(i=0; i<n; i++)
       for(j=i+1; j<n; j++)
           if(a[i]>a[j])
              if(a[j]==0)
                 break;
              else
                 change(a[i],a[j]);
   for(int i=n-1; i>0; i--)
       for(int j=i-1; j>0; j--)
           if((a[i]>a[j])&&a[j]%2!=0)
                change(a[i],a[j]);
}


với hàm change:

void change(int &a, int &b)
{
   int c=a;
       a=b;
       b=c;
}

Không có nhận xét nào:

Đăng nhận xét