Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Tách mảng 1 chiều, làm sao tách mảng một chiều

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    2

    Mặc định Tách mảng 1 chiều, làm sao tách mảng một chiều

    Đề bài : Viết chương trình tách 1 mảng các số nguyên thành 2 mảng a và b, sao
    cho mảng a chứa toàn số lẻ và mảng b chứa toàn số chẵn.
    Ví dụ: Mảng ban đầu: 1 3 8 2 7 5 9 0 10
    Mảng a: 1 3 7 5 9
    Mảng b: 8 2 10
    Mình viết như sau và chạy bằng Visual C++ 6.0 , nó hoạt động tốt khi mảng có 8 phần tử trở xuống


    Nhưng từ 9 phần tử trở lên thì nó không hoạt động nữa

    Còn nếu chạy bằng Visual Studio 2005 thì nó ko chạy luôn

    PHP Code:
    #include "stdio.h"
    #include "math.h"

    void nhapmang(int &nint M[])
    {
        
        
    printf("Nhap so phan tu cua mang ");
        
    scanf("%d",&n);
        for(
    int i=0i<n;i++)
        {
            
    printf("Nhap phan tu thu %d ",i);
            
    scanf("%d",&M[i]);
        }

    }

    void tach(int nint M[], int &aint A[], int &bint B[])
    {
        
    a=0;b=0;
        for(
    int i=0;i<n;i++)
        {
            if(
    M[i]%2==0)
                
    A[a++]=M[i];
            if(
    M[i]%2!=0)
                
    B[b++]=M[i];
        }


    }


    void xuatmang (int nint M[])
    {
        for(
    int i=0;i<n;i++)
            
    printf("%d ",M[i]);
    }
    void xuatmang1 (int aint A[])
    {
        for(
    int i=0;i<a;i++)
            
    printf("%d ",A[i]);
    }
    void xuatmang2 (int bint B[])
    {
        for(
    int i=0;i<b;i++)
            
    printf("%d ",B[i]);
    }
    void main(int nint M[], int aint A[], int bint B[])
    {
        
    nhapmang(n,M);
        
    xuatmang(n,M);
        
    printf("\n");
        
    tach(n,M,a,A,b,B);
        
    xuatmang1(a,A);
        
    printf("\n");
        
    xuatmang2(b,B);
        
    printf("\n");

    Ai biết chỉ mình với nha, cám ơn nhiều

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Mặc định bạn sửa lại như vạy coi được không nha

    PHP Code:
    #include "stdio.h"
    #include "math.h"
    void nhapmang(int &nint M[])
    {
        
        
    printf("Nhap so phan tu cua mang ");
        
    scanf("%d",&n);
        for(
    int i=0i<n;i++)
        {
            
    printf("Nhap phan tu thu %d ",i);
            
    scanf("%d",&M[i]);
        }

    }

    void tach(int nint M[], int &aint A[], int &bint B[])
    {
        
    a=0;b=0;
        for(
    int i=0;i<n;i++)
        {
            if(
    M[i]%2==0)
                
    A[a++]=M[i];
            if(
    M[i]%2!=0)
                
    B[b++]=M[i];
        }


    }


    void xuatmang (int nint M[])
    {
        for(
    int i=0;i<n;i++)
            
    printf("%d ",M[i]);
    }
    void xuatmang1 (int aint A[])
    {
        for(
    int i=0;i<a;i++)
            
    printf("%d ",A[i]);
    }
    void xuatmang2 (int bint B[])
    {
        for(
    int i=0;i<b;i++)
            
    printf("%d ",B[i]);
    }
    void main()
    {
        
    int nM[100], aA[100], bB[100];
        
    nhapmang(n,M);
        
    xuatmang(n,M);
        
    printf("\n");
        
    tach(n,M,a,A,b,B);
        
    xuatmang1(a,A);
        
    printf("\n");
        
    xuatmang2(b,B);
        
    printf("\n");

    bạn dùng mảng động thì chương trình tối ưu hơn

  3. #3
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Hàm main kiểu gì vậy,
    C Code:
    1. void main(int n, int M[], int a, int A[], int b, int B[])
    2. {
    3.     nhapmang(n,M);
    4.     xuatmang(n,M);
    5.     printf("\n");
    6.     tach(n,M,a,A,b,B);
    7.     xuatmang1(a,A);
    8.     printf("\n");
    9.     xuatmang2(b,B);
    10.     printf("\n");
    11. }
    nếu muốn dùng như vậy thì phải truyền max size vào
    void main(int n, int M[10], int a, int A[10], int b, int B[10]) //được 10 phần tử.

Các đề tài tương tự

  1. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  2. Lỗi: bố cục trang web tự tăng theo chiều ngang khi chiều cao thay đổi
    Gửi bởi tuanngocpt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-03-2013, 11:25 PM
  3. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  4. Cách truyền mang 1 chiều cho hàm bài con trỏ và mảng một chiều ai có thể giải thích giúp mình
    Gửi bởi biencute trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 21-03-2012, 09:00 AM
  5. Lời giải bài tập: Chuỗi Ký tự, mảng số nguyên 1 chiều, mảng 2 chiều, tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:17 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn