Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng)   Thu Jan 20, 2011 12:00 am

Thu Jan 20, 2011 12:00 am » Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng)
Ý tưởng 1: Chọn các số chẵn của dãy cho vào mảng B,sau đó tìm các số lẻ cho vào sau các số chẵn đó trong mảng B.In mảng B.

Code:
//Sap xep mang chan truoc le sau
#include <stdio.h>
#include <conio.h>
#define Max 10000
void Chanle(int A[],int B[],int N);
void Nhapmang(int A[],int N);
void Xuatmang(int A[],int N);
void main()
{
   int a[Max],b[Max],n;
   do
   {
      printf("Nhap vao so phan tu mang (0<=n<=%d):  ",Max);
      scanf("%d",&n);
   }while(n<1||n>Max);
   Nhapmang(a,n);
   printf("Cac phan tu vua nhap: ");
   Xuatmang(a,n);
   Chanle(a,b,n);
   printf("\nSau khi sap xep: ");
   Xuatmang(b,n);
   printf("\nMang ban dau: ");
   Xuatmang(a,n);
   getch();
}
void Nhapmang(int A[],int N)
{
   for(int i=0;i<N;i++)
   {
      printf("a[%d]= ",i+1);
      scanf("%d",&A[i]);
   }
}
void Xuatmang(int A[],int N)
{
   for(int i=0;i<N;i++)
      printf("%d ",A[i]);
}
void Chanle(int A[],int B[],int N)
{
   int j=0;
   for(int i=0;i<N;i++) //Cho cac so chan mang A vao mang B
      if(A[i]%2==0)
      {
         B[j]=A[i];
         j++;
      }
   for(int i=0;i<N;i++) //Cho tiep cac so le mang A vao B
      if(A[i]%2!=0)
      {
         B[j]=A[i];
         j++;
      }
}

Ý tưởng 2: Sử dụng lệnh chèn và xóa.
Code:
//Sap xep mang chan truoc le sau
#include <stdio.h>
#include <conio.h>
#define Max 10000
void Copymang(int A[],int B[],int N);
void Xoa(int A[],int &N,int K);
void Chen(int A[],int &N,int K,int X);
void Chanle(int A[],int N);
void Nhapmang(int A[],int N);
void Xuatmang(int A[],int N);
void main()
{
   int a[Max],b[Max],n;
   do
   {
      printf("Nhap vao so phan tu mang (0<=n<=%d):  ",Max);
      scanf("%d",&n);
   }while(n<1||n>Max);
   Nhapmang(a,n);
   Copymang(a,b,n);
   printf("Cac phan tu vua nhap: ");
   Xuatmang(a,n);
   Chanle(b,n);
   printf("\nSau khi sap xep: ");
   Xuatmang(b,n);
   printf("\nMang ban dau: ");
   Xuatmang(a,n);
   getch();
}
void Copymang(int A[],int B[],int N)
{
   for(int i=0;i<N;i++)
      B[i]=A[i];
}
void Nhapmang(int A[],int N)
{
   for(int i=0;i<N;i++)
   {
      printf("a[%d]= ",i+1);
      scanf("%d",&A[i]);
   }
}
void Xuatmang(int A[],int N)
{
   for(int i=0;i<N;i++)
      printf("%d ",A[i]);
}
void Xoa(int A[],int &N,int K)
{
  for(int i=K;i<N;i++)
      A[i]=A[i+1];
  N--;
}
void Chen(int A[],int &N,int K,int X)
{
   for(int i=N;i>K;i--)
      A[i]=A[i-1];
   A[K]=X;
   N++;
}
void Chanle(int A[],int N)
{
   int j=0;
   for(int i=0;i<N;i++)
      if(A[i]%2==0)
      {
         Chen(A,N,j,A[i]);
         Xoa(A,N,i+1);
         j++;
      }
}
   



Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
 

Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Cơ sở lập trình 1 :: Bài tập thực hành-