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 | 
 

 [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 : 25
Đế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-