Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 15
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Mọi người xem giúp em sai chỗ nào với em ngồi hoài hok ra TT

    Đề cho tập tin văn bản number5.in, dòng đầu tiên chứa hai số nguyên dương m và n (m, n  50), dòng thứ 2 và thứ 3 lần lượt chứa m và n số nguyên dương được phân cách nhau bằng 1 hay nhiều khoảng trắng. Hãy định nghĩa các hàm để thực hiện các công việc sau và viết chương trình áp dụng:

    a) Đọc n và m giá trị vào hai mảng số nguyên A và B
    b) Liệt kê các phần tử là hội của hai mảng
    c) Liệt kê các phần tử là giao của hai mảng
    d) Liệt kê các phần tử có trong mảng A nhưng không có trong mảng B và ngược lại.
    e) Ghi tất cả kết quả thực hiện được vào tập tin number5.out .



    *Chỉ được sài lệnh của C.
    #########


    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    void cauABE(int a[],int b[],int m, int n)
    {
    int i,j;
    FILE *f;
    f=fopen("number5.in.txt","r+");
    FILE *g;
    g=fopen("number5.out.txt","w+");
    fscanf(f,"%d",&n);
    printf("so phan tu mang A %d
    ",n);
    fscanf(f,"%d",&m);
    printf("so phan tu mang B %d
    ",m);

    for (i=0;i<n;i++)
    fscanf(f,"%d",&a[i]);
    for (j=0;j<m;j++)
    fscanf(f,"%d",&b[j]);

    for (i=0;i<n;i++)
    printf("Hoi cua 2 mang : %d ",a[i]);
    for (j=0;j<m;j++)
    printf("%d ",b[j]);

    for (i=0;i<n;i++)
    fprintf(g,"%d ",a[i]);

    fclose(f);
    fclose(g);
    }

    int KiemTra (int a[],int m, int x)
    {
    int i;
    for(i=0; i<m; i++)
    if(a[i] == x)
    return 1;
    return 0;
    }

    void cauc(int a[],int b[], int m,int n)
    {
    int i=0;
    printf("Giao cua 2 mang : ");
    for(i=0;i<n;i++)
    {
    if(KiemTra(a,m,b[i])==1)
    printf("%d",b[i]);
    }
    }

    void Caud (int a[], int b[], int m, int n)
    {
    int i;
    printf("Cac phan tu co trong b ma khong co trong a: ");
    for( i=0; i<n; i++)
    {
    if(KiemTra(a,m,b[i])==0)
    printf("%d",b[i]);
    }
    printf("
    Cac phan tu co trong a ma khong co trong b: ");
    for( i=0; i<n; i++)
    {
    if(KiemTra(a,m,b[i])==0)
    printf("%d",a[i]);
    }
    }

    int main(int argc, char *argv[])
    {
    int a[50],b[50];
    int n=0,m=0;
    int i,j;


    cauABE(a,b,m,n);
    printf("
    ");
    cauc(a,b,m,n);
    printf("
    ");
    Caud(a,b,m,n);
    return 0;
    }



    Em làm câu a,b thì chạy ra kết quả nhưng c,d thì nó chỉ xuất câu văn còn phần yêu cầu của đề nó hông xuất T_T. Help!!!!

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Vì các tham số m, n nạp vào cauC() và Caud() luôn luôn là 0 cho nên các vòng lặp trong hai hàm này khong bao giờ thực hiện cả.

    Tự tìm hiểu tại sao m, n luôn là 0. Tìm không ra thì hỏi tiếp (nhưng lúc hỏi tránh dùng các từ Hi, Dear, thanks, help... tôi không hiểu là khen hay chửi mình)

  3. #3
    bạn chọn 1 trong 2:

    1. Cách sửa nhanh cho bạn. (không khuyến khích cách này)
    Xóa các tham số m, n trong khai báo hàm đi. Đưa m, n lên làm biến toàn cục.
    2. Ở KiemTra, câu c, d. Thay đối tham số m, n là con trỏ. (int *m, int *n)

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn, nhưng mình vẫn không hiểu về vấn đề con trỏ T_T. Tại trong lớp phần này mình hok học, bạn có thể viết phần này giúp mình được không ?

    - - - Nội dung đã được cập nhật ngày 22-07-2016 lúc 01:41 PM - - -

    Trích dẫn Gửi bởi NguNhuheo
    Vì các tham số m, n nạp vào cauC() và Caud() luôn luôn là 0 cho nên các vòng lặp trong hai hàm này khong bao giờ thực hiện cả.

    Tự tìm hiểu tại sao m, n luôn là 0. Tìm không ra thì hỏi tiếp (nhưng lúc hỏi tránh dùng các từ Hi, Dear, thanks, help... tôi không hiểu là khen hay chửi mình)
    Em tìm không ra thật T_T. Bác giúp em với !!!

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi lifeabeat62
    Cảm ơn bạn, nhưng mình vẫn không hiểu về vấn đề con trỏ T_T. Tại trong lớp phần này mình hok học, bạn có thể viết phần này giúp mình được không ?
    Tham chiếu bằng con trỏ thôi, không liên quan nhiều đến con trỏ.

    Để lấy tham số ra (gán và sử dụng) thì dùng toán tử 1 ngôi *<con trỏ>. Truyền tham số thì dùng toán tử & .

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    Tham chiếu bằng con trỏ thôi, không liên quan nhiều đến con trỏ.

    Để lấy tham số ra (gán và sử dụng) thì dùng toán tử 1 ngôi *<con trỏ>. Truyền tham số thì dùng toán tử & .
    mình có lên mạng tra và có thử sử dụng nhưng khi mình nhét nó vào hàm void ABE trên phần đầu thì mấy hàm còn lại nó vẫn không nhớ và bắt khai báo lại T_T. Bạn có thể edit mẫu giúp mình 1 hàm được không ?

    - - - Nội dung đã được cập nhật ngày 22-07-2016 lúc 06:00 PM - - -

    Plz someone help me ((

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nhét như thế nào (nhét nó vào hàm void ABE trên phần đầu), tìm một nơi rồi hỏi nơi khác thì quá khó. Tôi viết sau vài năm đọc lại, chính tôi còn mù tịt nữa là người khác.

    Sưu liệu và công việc quan trọng cần cho việc nâng cấp hay sửa chương trình; một dạng sưu liệu đơn giản là comment trong code, nó còn có thể xuất ra XML hay nhúng vào dll / exe sau khi biên dịch (c# / java hay delphi).

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CoViet-Plus005
    Nhét như thế nào (nhét nó vào hàm void ABE trên phần đầu), tìm một nơi rồi hỏi nơi khác thì quá khó. Tôi viết sau vài năm đọc lại, chính tôi còn mù tịt nữa là người khác.

    Sưu liệu và công việc quan trọng cần cho việc nâng cấp hay sửa chương trình; một dạng sưu liệu đơn giản là comment trong code, nó còn có thể xuất ra XML hay nhúng vào dll / exe sau khi biên dịch (c# / java hay delphi).
    Cho mình xin lỗi mình nói khó hiểu thật @@ mình mới chân ướt chân ráo nhập môn mong bạn thông cảm >.<. Đây mình gửi file main của mình lên cho bạn ( mình dùng chương trình Dev C++)

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Code bạn viết :


    Mã:
    #include<stdio.h>#include<stdlib.h>#include<conio.h>  void GIAO(int a[],int b[], int n,int m);void cauABE(int a[],int b[],int m, int n){    int i,j;    int *c,*d;     c=&m;     d=&n;    FILE *f;          f=fopen("number5.in.txt","r+");FILE *g;          g=fopen("number5.out.txt","w+");                fscanf(f,"%d",&n);    printf("so phan tu mang A %d
    ",n);    fscanf(f,"%d",&m);    printf("so phan tu mang B %d
    ",m);                          for (i=0;i<n;i++)            fscanf(f,"%d",&a[i]);             for (j=0;j<m;j++)            fscanf(f,"%d",&b[j]);                    for (i=0;i<n;i++)        printf("Hoi cua 2 mang : %d ",a[i]);        for (j=0;j<m;j++)        printf("%d ",b[j]);            for (i=0;i<n;i++)        fprintf(g,"%d ",a[i]);            fclose(g);    fclose(f);       }  int KiemTra (int a[],int m, int x){    int i;    for(i=0; i<m;i++)    if(a[i] == x)    return 1;    else    return 0;} void cauc(int a[],int b[], int m,int n) {    int i=0;    printf("Giao cua 2 mang : ");    for(i=0;i<n;i++)    {     if(KiemTra(a,m,b[i])==1)     printf("%d",b[i]);   }} void Caud (int a[], int b[], int m, int n){    int i;    printf("Cac phan tu co trong b ma khong co trong a: ");        for( i=0; i<n; i++)    {    if(KiemTra(a,m,b[i])==0)    printf("%d ",b[i]);    }      printf("
    Cac phan tu co trong a ma khong co trong b: ");        for( i=0; i<n; i++)    {    if(KiemTra(a,m,b[i])==0)    printf("%d ",a[i]);    }}      int main(int argc, char *argv[]){    int a[50],b[50];    int i,j;    int m=0,n=0;              cauABE(a,b,m,n);     printf("
    ");     cauc(a,b,m,n);     printf("
    ");     Caud(a,b,m,n);           return 0;}
    File input : number5.in.txt ở đâu, nó có gì sao không đính kèm luôn ?

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CoViet-Plus005
    Code bạn viết :


    Mã:
    #include<stdio.h>#include<stdlib.h>#include<conio.h>  void GIAO(int a[],int b[], int n,int m);void cauABE(int a[],int b[],int m, int n){    int i,j;    int *c,*d;     c=&m;     d=&n;    FILE *f;          f=fopen("number5.in.txt","r+");FILE *g;          g=fopen("number5.out.txt","w+");                fscanf(f,"%d",&n);    printf("so phan tu mang A %d
    ",n);    fscanf(f,"%d",&m);    printf("so phan tu mang B %d
    ",m);                          for (i=0;i<n;i++)            fscanf(f,"%d",&a[i]);             for (j=0;j<m;j++)            fscanf(f,"%d",&b[j]);                    for (i=0;i<n;i++)        printf("Hoi cua 2 mang : %d ",a[i]);        for (j=0;j<m;j++)        printf("%d ",b[j]);            for (i=0;i<n;i++)        fprintf(g,"%d ",a[i]);            fclose(g);    fclose(f);       }  int KiemTra (int a[],int m, int x){    int i;    for(i=0; i<m;i++)    if(a[i] == x)    return 1;    else    return 0;} void cauc(int a[],int b[], int m,int n) {    int i=0;    printf("Giao cua 2 mang : ");    for(i=0;i<n;i++)    {     if(KiemTra(a,m,b[i])==1)     printf("%d",b[i]);   }} void Caud (int a[], int b[], int m, int n){    int i;    printf("Cac phan tu co trong b ma khong co trong a: ");        for( i=0; i<n; i++)    {    if(KiemTra(a,m,b[i])==0)    printf("%d ",b[i]);    }      printf("
    Cac phan tu co trong a ma khong co trong b: ");        for( i=0; i<n; i++)    {    if(KiemTra(a,m,b[i])==0)    printf("%d ",a[i]);    }}      int main(int argc, char *argv[]){    int a[50],b[50];    int i,j;    int m=0,n=0;              cauABE(a,b,m,n);     printf("
    ");     cauc(a,b,m,n);     printf("
    ");     Caud(a,b,m,n);           return 0;}
    File input : number5.in.txt ở đâu, nó có gì sao không đính kèm luôn ?
    Đây bác, nếu có thể bác làm mẫu cho em 1 hàm nhé. những câu còn lại em mò làm tương tự ^^

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •