Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhTrang Chính  Tìm kiếmTìm kiếm  Latest imagesLatest images  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

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
Tboy


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

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

Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng) Titleb10 Thu Jan 20, 2011 12:00 am » Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng) Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng) Titleb13
Ý 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

Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng) Border10 Chẵn-Lẻ -(Mảng 1 chiều-Biến đổi trên mảng) Border14
Về Đầu Trang Go down
https://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 

 Similar topics

-
» Chèn mảng vào mảng-(Mảng 1 chiều-Biến đổi trên mảng)
» Xóa một phần tử khỏi mảng-(Mảng 1 chiều-Biến đổi trên mảng)
» Xóa một phần tử khỏi mảng-(Mảng 1 chiều-Biến đổi trên mảng)
» Di chuyển mảng-(Mảng 1 chiều-Biến đổi trên mảng)
» Chèn vào mảng- (Mảng 2 chiều- Biến đổi trên mảng)
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-