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

    Biên dịch không có lỗi, nhưng mà run không đc ????


    #include<stdio.h>
    #include<conio.h>
    #include<malloc.h>
    void nhap(int a[], int *n)
    { printf("Nhap vao so phan tu cua mang = ");
    scanf("%d", n);
    printf("Nhap mang:
    ");
    for (int i=0; i<*n; i++)
    { printf("a[%d]=", i);
    scanf("%d",a[i]);
    }
    }
    void in(int a[], int n)
    { for (int i=0; i<n; i++)
    printf("%d\t", a[i]);
    }
    void xoa(int a[], int *n, int p)/*Xoa phan tu thu p trong mang, giam tong so phan tu n = n-1*/
    { for (int i=0; i+p<(*n)-2; i++)
    a[p+i]=a[p+i+1];
    (*n)=(*n)-1;
    free(n);
    }
    void sapxep_tangdan(int a[], int n)
    { int t;
    for (int i=0; i<n; i++)
    for (int j=1; i+j<n; j++)
    if (a[i]>a[i+j])
    { t=a[i];
    a[i]=a[i+j];
    a[i+j]=t;
    }
    }
    void xoatrung(int a[], int *n)/*Xoa cac phan tu trung nhau( su dung ham` xoa), sau khi sap xep moi su dung dc ham`*/
    { for (int i=0; i<*n; i++)
    if (a[i]==a[i+1])
    xoa(a, n, i+1);
    free(n);
    }
    main(){
    int a[10];
    int n;
    nhap(a, &n);
    sapxep_tangdan(a, n);
    xoatrung(a, &n);
    printf("Chuoi sau khi sap xep tang dan, loai bo cac phan tu trung nhau");
    in(a, n);
    getch();
    }
    Không hiểu sao khi biên dịch thì không có lỗi, mà khi chạy ct, nhập phần tử a[0] thì có hiện tượng ntn:

    [IMG]images/smilies/21.gif[/IMG] po' tay lun, mình mới nhập môn C thôi, mong các pro giúp dùm....[IMG]images/smilies/tongue.png[/IMG] [IMG]images/smilies/clap_grin.gif[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thử xem lại kiểu định dạng của n xem, ở mấy cái hàm trên thì n là 1 biến con trỏ trỏ đến số nguyên mà.

  3. #3
    Nhập phần tử a[0] thì hiện lỗi nghĩa là sai ở chỗ này
    Mã:
    scanf("%d",a[i]);
    Sửa thành như này thử
    Mã:
    scanf("%d",&a[i]);

  4. #4
    zoi` ơi, khùng wa' [IMG]images/smilies/17.gif[/IMG] ....đúng là sai chỗ scanf("%d",a[i]); òi....cám ơn bác Lugia nhá.....
    ....Nhưng mà lại nảy sinh 1 vấn đề khác nì.[IMG]images/smilies/biggrin.png[/IMG] ......lỗi trên đơn giản nhưng mình không phát hiện ra đc là do khi biên dịch DEV-C đâu có báo lỗi...vẫn done như thường....mà lúc Run mới không được.(hok tin thì các bác dùng DEV-C biên dịch thử xem)....tại sao zi cà???? Có bác nào gặp tình huống tương tự như vậy chưa? [IMG]images/smilies/cool.png[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    [IMG]images/smilies/tongue.png[/IMG] [IMG]images/smilies/tongue.png[/IMG] Ngồi suy nghĩ một hồi.....tự nhiên nghĩ ra câu trả lời cho câu hỏi của mình luôn[IMG]images/smilies/18.gif[/IMG] ....Là tại wi`...Trong C thì mảng cũng đc xem như là 1 con trỏ.....hàm scanf("kiểu dữ liệu",địa chỉ)....mà mảng a[i] ở trên vì đc xem là con trỏ...nên bản thân nó cũng là 1 địa chỉ...cho nên khi biên dịch mới ko báo lỗi........
    ....Mình nghĩ vậy hok bít có đúng hok nhỉ???[IMG]images/smilies/online.gif[/IMG]

 

 

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
  •