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  

Share | 
 

 [Mảng 1 chiều]- Trộn dãy

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 : 26
Đến từ : TPHCM

Bài gửiTiêu đề: [Mảng 1 chiều]- Trộn dãy    Thu Mar 10, 2011 7:32 pm

Thu Mar 10, 2011 7:32 pm » [Mảng 1 chiều]- Trộn dãy
Đề: Nhập 2 dãy số nguyên b tăng dần và c giảm dần. Trộn 2 dãy b,c thành dãy a tăng dần (không cho phép sắp xếp trên dãy a).

Code:
#include <stdio.h>
#include <conio.h>
#define Max 100
void Nhaptang(int A[],int N);
void Nhapgiam(int A[],int N);
void Xuat(int A[],int N);
void main()
{
    int a[Max],b[Max],c[2*Max],k=0,i=0,j=0,m,n;
//Nhap xuat day a
    do
    {
        printf("Nhap n: ");
        scanf("%d",&n);
    }while(n<1||n>Max);
    printf("Nhap day tang:\n");
    Nhaptang(a,n);
    printf("Day vua nhap: ");
    Xuat(a,n);
//Nhap xuat day b
    do
    {
        printf("Nhap m: ");
        scanf("%d",&m);
    }while(m<1||m>Max);
    printf("Nhap day giam:\n");
    Nhapgiam(b,m);
    printf("Day vua nhap: ");
    Xuat(b,m);
//Tron day
    while(i+j<m+n-1)
    {
        while(b[m-1-i]<a[j])
            c[k++]=b[m-1-i++];
        c[k++]=a[j++];
    }
    printf("Mang tron: ");
    Xuat(c,n+m);
}
void Nhaptang(int A[],int N)
{
    for(int i=0;i<N;i++)
        do
        {
            printf("A[%d]= ",i+1);
            scanf("%d",&A[i]);
        }while(A[i]<A[i-1]&&i>0);
}
void Nhapgiam(int A[],int N)
{
    for(int i=0;i<N;i++)
        do
        {
            printf("A[%d]= ",i+1);
            scanf("%d",&A[i]);
        }while(A[i]>A[i-1]&&i>0);
}
void Xuat(int A[],int N)
{
    for(int i=0;i<N;i++)
        printf("%d ",A[i]);
    printf("\n");
}

Code:
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#define Max 100
int *Nhaptang(int N);
int *Nhapgiam(int N);
void Xuat(int A[],int N);
int *Tron(int *A,int *B,int N,int M);
void main()
{
    int *a,*b,*c,k=0,i=0,j=0,m,n;
//Nhap xuat day a
    do
    {
        printf("Nhap n: ");
        scanf("%d",&n);
    }while(n<1||n>Max);
    printf("Nhap day tang:\n");
    a=Nhaptang(n);
    printf("Day vua nhap: ");
    Xuat(a,n);
//Nhap xuat day b
    do
    {
        printf("Nhap m: ");
        scanf("%d",&m);
    }while(m<1||m>Max);
    printf("Nhap day giam:\n");
    b=Nhapgiam(m);
    printf("Day vua nhap: ");
    Xuat(b,m);
//Xuat day tron
    c=Tron(a,b,n,m);
    printf("Mang tron: ");
    Xuat(c,n+m);
    getch();
}
int *Nhaptang(int N)
{
    int *tmp;
    tmp=(int *)malloc(N*sizeof(int));
    for(int i=0;i<N;i++)
        do
        {
            printf("A[%d]= ",i+1);
            scanf("%d",&tmp[i]);
        }while(tmp[i]<tmp[i-1]&&i>0);
    return tmp;
}
int *Nhapgiam(int N)
{
    int *tmp;
    tmp=(int *)malloc(N*sizeof(int));
    for(int i=0;i<N;i++)
        do
        {
            printf("A[%d]= ",i+1);
            scanf("%d",&tmp[i]);
        }while(tmp[i]>tmp[i-1]&&i>0);
    return tmp;
}
void Xuat(int *A,int N)
{
    for(int i=0;i<N;i++)
        printf("%d ",A[i]);
    printf("\n");
}
int *Tron(int *A,int *B,int N,int M)
{
    int *tmp,i=0,j=0,k=0;
    tmp=(int *)malloc((N+M)*sizeof(int));
    while(i+j<M+N-1)
    {
        while(B[M-1-i]<A[j])
            tmp[k++]=B[M-1-i++];
        tmp[k++]=A[j++];
    }
    return tmp;
}


Tboy



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

[Mảng 1 chiều]- Trộn dãy

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 khác-