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

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

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

    Wink 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:\n");
    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:

    po' tay lun, mình mới nhập môn C thôi, mong các pro giúp dùm....
    Đã được chỉnh sửa lần cuối bởi son_sun_pretty : 16-03-2009 lúc 06:51 PM.

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    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
    Ngày gia nhập
    04 2007
    Bài viết
    134

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

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

    zoi` ơi, khùng wa' ....đú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ì. ......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?

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

    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 ....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ỉ???

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

  1. Biên dịch bằng C-free gặp lỗi không thể biên dịch được?
    Gửi bởi themanhbk trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 28
    Bài viết cuối: 06-10-2015, 05:45 PM
  2. Trả lời: 0
    Bài viết cuối: 23-04-2013, 09:38 AM
  3. Khách sạn Điện Biên Phủ 5 sao - Đặt phòng khách sạn Điện Biên Phủ
    Gửi bởi nguyenduya trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 30-08-2012, 01:58 PM
  4. Kỹ thuật C++ từ trình biên dịch Borland C++ sang trình biên dịch Dev-C++ bị lỗi
    Gửi bởi 0baohbotay1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 11-08-2012, 11:14 PM
  5. [bada] thư viện static lib do gcc biên dịch ra trong app được biên dịch g++
    Gửi bởi Iphone4 trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 2
    Bài viết cuối: 10-08-2011, 04:53 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