Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: dùng sqrt() trong C linux như thế nào?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    6

    Question dùng sqrt() trong C linux như thế nào?

    mình gõ code sau trong linux không hiểu vì sao nó vẫn báo phần main phải dùng double, không được dùng int. Mình đã sửa lại nó vẫn báo thế. Có bạn nào chỉ xem mình sai ở đâu với
    #include <stdio.h>
    #include <math.h>
    int main ( int argc, char * argv[])
    {
    int i;
    for (i =1; i<101; i++)
    printf (" %d %lf\n", i, sqrt ((double) i));
    return 0;
    }

  2. #2
    Ngày gia nhập
    08 2011
    Bài viết
    98

    Trích dẫn Nguyên bản được gửi bởi phuongly101 Xem bài viết
    mình gõ code sau trong linux không hiểu vì sao nó vẫn báo phần main phải dùng double, không được dùng int. Mình đã sửa lại nó vẫn báo thế. Có bạn nào chỉ xem mình sai ở đâu với
    #include <stdio.h>
    #include <math.h>
    int main ( int argc, char * argv[])
    {
    int i;
    for (i =1; i<101; i++)
    printf (" %d %lf\n", i, sqrt ((double) i));
    return 0;
    }
    Hàm này lấy kiểu double mà bạn.Có gì khó hiểu đâu,vì tham số đưa vào có thể là double được mà.Nếu là là kiểu int như sqrt(2) thì nó cũng ép qua double thôi.
    Nghe Metal và dịch thơ
    lttqstudy.wordpress.com

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    6

    nhưng chương trình vẫn báo sai, không chạy được. Tớ vẫn không tìm được lỗi sai ở đâu

  4. #4
    Ngày gia nhập
    08 2011
    Bài viết
    98

    Trích dẫn Nguyên bản được gửi bởi phuongly101 Xem bài viết
    nhưng chương trình vẫn báo sai, không chạy được. Tớ vẫn không tìm được lỗi sai ở đâu
    À tôi không để ý

    Khi dịch :

    C Code:
    1. gcc -lm tenfile.c -o lttq.bin

    và chạy

    C Code:
    1. ./lttq.bin

    Lỗi này là do mặc định các thư viện include vào nằm trong lib.so cả.Nhưng math.h thì nằm trong libm.so
    CHính vì điều này phải thêm option -lm để lọc nó đi
    Nghe Metal và dịch thơ
    lttqstudy.wordpress.com

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    6

    Vẫn không chạy được. Nó vẫn báo như thế

  6. #6
    Ngày gia nhập
    08 2011
    Bài viết
    98

    Mặc định dùng sqrt() trong C linux như thế nào?

    Trích dẫn Nguyên bản được gửi bởi phuongly101 Xem bài viết
    Vẫn không chạy được. Nó vẫn báo như thế
    Bạn dán dòng error do gcc dịch lên đây xem .
    Nghe Metal và dịch thơ
    lttqstudy.wordpress.com

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    6

    ~$ gcc -lm ex2.c -o ex2.bin
    ex2.c: In function 'main' :
    ex2.c : 7:1 warning : format '%f' expects type 'double' , but argument 3 has type 'int'
    /tmp/cczQUIEs.o : In function 'main':
    ex2.c: (text+0x1b): undefined reference to 'sprt'
    collect2: ld returned 1 exit status

  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Trích dẫn Nguyên bản được gửi bởi phuongly101 Xem bài viết
    ~$ gcc -lm ex2.c -o ex2.bin
    ex2.c: In function 'main' :
    ex2.c : 7:1 warning : format '%f' expects type 'double' , but argument 3 has type 'int'
    /tmp/cczQUIEs.o : In function 'main':
    ex2.c: (text+0x1b): undefined reference to 'sprt'
    collect2: ld returned 1 exit status
    Gõ sai chính tả kìa. Sửa lại thành sqrt sau đó paste cả code với kết quả biên dịch lên đây xem nào.
    PS: P với Q xa nhau thế mà cũng gõ lộn được :(
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  9. #9
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Trích dẫn Nguyên bản được gửi bởi phuongly101 Xem bài viết
    ~$ gcc -lm ex2.c -o ex2.bin
    ex2.c: In function 'main' :
    ex2.c : 7:1 warning : format '%f' expects type 'double' , but argument 3 has type 'int'
    /tmp/cczQUIEs.o : In function 'main':
    ex2.c: (text+0x1b): undefined reference to 'sprt'
    collect2: ld returned 1 exit status
    Sửa lại nhé.
    sprt -> sqrt

  10. #10
    Ngày gia nhập
    10 2011
    Bài viết
    6

    ổ ảo nên không biết thế nào cop lên. Nhưng dòng lệnh thì thế đấy, chắc chỉ sai chính tả thôi, dấu chấm phẩy thì đúng

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

  1. Lệnh dùng để phát hiện thâm nhập mạng trong Linux (CentOS)????
    Gửi bởi pharaonphan trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 2
    Bài viết cuối: 04-09-2013, 11:50 AM
  2. Lập trình C Dùng socket để lập trình 1 chương trình chat như thế nào trên Linux ?
    Gửi bởi thanhtuan.nda trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 18-05-2013, 10:38 PM
  3. Kỹ thuật C làm thế nào để dùng hàm sqrt trong vs 2010
    Gửi bởi gachoai 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: 20-08-2011, 02:46 PM
  4. Tính căn bậc hai không dùng sqrt trong C++?
    Gửi bởi chuongbkcse trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-03-2011, 07:48 PM
  5. Lập trình C trong linux. Cách biên dịch chương trình C trên Linux như thế nào?
    Gửi bởi thangbn trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 30-05-2009, 11:38 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