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

Đề tài: giúp em bài tập về mảng 1 chiều

  1. #1
    Ngày gia nhập
    11 2012
    Bài viết
    0

    Mặc định giúp em bài tập về mảng 1 chiều

    Nhập 2 mảng 1 chiều. Liệt kê những phần tử chỉ xuất hiện 1 trong 2 mảng. Thanks..

  2. #2
    Ngày gia nhập
    01 2013
    Bài viết
    5

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h.>
    3.  
    4. void nhap(int A[],int n)
    5. {
    6.     for(int i=0;i<n;i++)
    7.     {
    8.         printf("Nhap vao phan tu thu %d: ",i+1);
    9.         scanf("%d",&A[i]);
    10.     }
    11. }
    12. void kiemtra(int A[],int B[],int n)
    13. {
    14.     int C[n];
    15.     int cohieu;
    16.     int dem=0;
    17.     for(int i=0;i<n;i++)
    18.     {
    19.         cohieu=0;
    20.         for(int j=0;j<n;j++)
    21.         {
    22.             if(A[i]==B[j])
    23.             {
    24.                 cohieu=1;
    25.                 break;
    26.             }
    27.         }
    28.         if(cohieu==0)
    29.         {
    30.             dem++;
    31.             C[dem]=A[i];
    32.         }
    33.     }
    34.     for(int i=0;i<n;i++)
    35.     {
    36.         cohieu=0;
    37.         for(int j=0;j<n;j++)
    38.         {
    39.             if(B[i]==A[j])
    40.             {
    41.                 cohieu=1;
    42.                 break;
    43.             }
    44.         }
    45.         if(cohieu==0)
    46.         {
    47.             dem++;
    48.             C[dem]=B[i];
    49.         }
    50.     }
    51.     printf("Cac phan tu khong trung nhau la: ");
    52.     for(int i=1;i<=dem;i++)
    53.     {
    54.         printf(" %d ",C[i]);
    55.     }
    56. }
    57. int main()
    58. {
    59.     int n;
    60.     printf("Nhap vao so phan tu cua 2 mang: ");
    61.     scanf("%d",&n);
    62.     int A[n];
    63.     int B[n];
    64.     printf("\n\nMang 1\n\n");
    65.     nhap(A,n);
    66.     printf("\n\nMang 2\n\n");
    67.     nhap(B,n);
    68.     kiemtra(A,B,n);
    69.     getch();
    70. }

  3. #3
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Trích dẫn Nguyên bản được gửi bởi cd8ath Xem bài viết
    C Code:
    1. #include <stdio.h>
    2.  
    3. int main()
    4. {
    5.     int n;
    6.     printf("Nhap vao so phan tu cua 2 mang: ");
    7.     scanf("%d",&n);
    8.     int A[n]; //có lỗi chỗ này  số phần tử mảng phải là hằng số nếu cấp phát tĩnh trừ cấp phát động
    9.     int B[n];
    10. }
    Không biết có phải bạn code Dev C hay không(vì thằng này nó chấp nhận), nhưng nếu viết thế này người ta chả cần sinh ra cấp phát động làm gì cả, theo nguyên tắc số phần tử của mảng tĩnh phải là một hằng số int A[const_value], bạn thử visual C++ xem báo lỗi ngay. Mình xin góp ý đã viết viết hàm rồi thì tách riêng hàm hiển thị với kiểm tra ra, đừng vừa kiểm tra lại vừa cho ra out put, giả sử mình muốn dùng hàm kiểm tra không thôi mà không muốn hiển thị ngay chắc là không dùng lại được rồi, trừ khi xóa phần hiển thị kết quả đi.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  4. #4
    Ngày gia nhập
    11 2012
    Bài viết
    0

    Thanks bạn cd8ath , bài làm của bạn khá giống mình, tại mình thấy nó dài quá. muốn tìm cách ngắn hơn

  5. #5
    Ngày gia nhập
    02 2013
    Nơi ở
    Hà Nội
    Bài viết
    0

    cách này mình thấy nhanh hơn
    #include<stdio.h>
    #include<conio.h>
    int a[10000],b[10000],m[10000];
    main()
    {
    int n,i;
    printf("so phan tu cua 2 mang: ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    scanf("%d",&a[i]);
    m[a[i]]=1;
    }
    for(i=0;i<n;i++)
    {
    scanf("%d",&b[i]);
    if(m[b[i]]==1) m[b[i]]=2;
    }
    printf("cac phan tu khong trung la: ");
    for(i=0;i<n;i++) if(m[a[i]]!=2) printf("%d ",a[i]);
    for(i=0;i<n;i++) if(m[b[i]]!=2) printf("%d ",b[i]);
    getch();
    }
    Quyết tâm thay đổi!

  6. #6
    Ngày gia nhập
    11 2012
    Bài viết
    0

    Mặc định giúp em bài tập về mảng 1 chiều

    mình mới nhập môn, k hiểu cái chỗ m[a[i]]=1, m[b[i]]==1, mb[b[i]]=2, của bạn magikian. bạn có thể giải thích cho mình không. Thanks.

  7. #7
    Ngày gia nhập
    02 2013
    Nơi ở
    Hà Nội
    Bài viết
    0

    cái m[a[i]]=1 là để mình đánh dấu phần tử đang nhập là trong mảng a
    còn m[b[i]] để kiểm tra xem phần tử b[i] có trong mảng a k? nếu là 1 thì nó xuất hiện trong a rồi tức là trùng thì đánh dấu nó = 2 (m[b[i]]=2)
    việc còn lại chỉ là duyệt lại 2 mảng nếu k trùng (tức m[a[i]]!=2,m[b[i]]!=2) thì in ra
    Quyết tâm thay đổi!

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

  1. 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
  2. Bài tập C++ về mảng 2 chiều, các bạn chỉ giúp???
    Gửi bởi itthuyloi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 31-07-2010, 04:06 PM
  3. Giúp em bài tập về mảng 1 và 2 chiều
    Gửi bởi vic_trongkhang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-10-2009, 08:28 AM
  4. 1 bài về mảng một chiều có bạn nào có thể giúp mình được ko?
    Gửi bởi kellypham trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 05-12-2007, 04:28 AM
  5. Mảng hai chiều, ma phương. Cần giúp đỡ
    Gửi bởi cardinaltrieu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 21-03-2007, 11:26 PM

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