Announcement

Collapse
No announcement yet.

Lỗi Floating Point Overflow trong C++

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lỗi Floating Point Overflow trong C++

    Đề bài là "Một tờ giấy có độ dày 0.1mm thì cần gấp bao nhiêu lần để tờ giấy có độ dày 1m"
    mình đã hiểu được hướng giải quyết nhưng chạy ra cứ báo lỗi như hình dưới và đây là đoạn code
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    main()
    {
       
    int i;
       
    float t=0.1;
        
    printf("Mot to giay co do day 0.1mm thi phai gap to giay ");
        for(
    i=1;i<=10000;i++)
           {
          
    t=t*2;
          if(
    t==10000)
             
    printf("%d",i);
          }
       
    printf(" lan de co do day 1m");
       
    getch();

    c456ats.jpg

  • #2
    float t=0.1; // thay bằng float t=0.1f; xem sao ?

    Comment


    • #3
      không được lun à ngoài xuất hiện thông báo lỗi đó nó còn tô đen cái dòng if(t==10000) của mình nữa?!

      Comment


      • #4
        Originally posted by keens0n View Post
        không được lun à ngoài xuất hiện thông báo lỗi đó nó còn tô đen cái dòng if(t==10000) của mình nữa?!
        T chạy bằng VS 2010 thì giải quyết dc cái lỗi trong hình mà không show ra kết quả nha @@

        Comment


        • #5
          Bạn thử thay float t=0.1 bằng double t=0.1 xem.
          Cái gì của mình thì sẽ là của mình, còn đã không phải của mình thì trước sau gì cũng thuộc về mình..

          Comment


          • #6
            Same thing

            Comment


            • #7
              Cứ gấp làm đôi nên không ra số 10000 đâu nên vòng lập cứ chạy hoài.

              Comment


              • #8
                ừm mình cũng nghĩ v. tại vì 0,1 cấp số nhân lên thì dễ gì = 10k chắc mánh khóe của bài này chỉ cần hơn 1 mét là đc

                Comment


                • #9
                  chạy vòng lập 10000 lần à...!!!!

                  dùng while đi...với lại bạn đâu có in kết quả ra đâu....
                  PHP Code:
                  #include<stdio.h> 
                  #include<conio.h> 
                  void main() 

                     
                  int i 0
                     
                  float t 0.1f
                      
                  printf("Mot to giay co do day 0.1mm thi phai gap to giay "); 
                      while (
                  1000.0f)
                      {
                          
                  i++;
                          
                  2;
                      }
                     
                  printf("%d lan de co do day 1m"i); 
                     
                  getch(); 

                  _________________________________
                  Handphone No. : 0165 304 6757
                  Email : buihuuhiep.uit@gmail.com

                  Comment


                  • #10
                    Originally posted by keens0n View Post
                    Đề bài là "Một tờ giấy có độ dày 0.1mm thì cần gấp bao nhiêu lần để tờ giấy có độ dày 1m"
                    mình đã hiểu được hướng giải quyết nhưng chạy ra cứ báo lỗi như hình dưới và đây là đoạn code
                    PHP Code:
                    #include<stdio.h>
                    #include<conio.h>
                    main()
                    {
                       
                    int i;
                       
                    float t=0.1;
                        
                    printf("Mot to giay co do day 0.1mm thi phai gap to giay ");
                        for(
                    i=1;i<=10000;i++)
                           {
                          
                    t=t*2;
                          if(
                    t==10000)
                             
                    printf("%d",i);
                          }
                       
                    printf(" lan de co do day 1m");
                       
                    getch();

                    [ATTACH=CONFIG]4445[/ATTACH]
                    kiểu float không đủ để lưu trữ số số có giá trị 0.1x2^10000, bạn nên sửa lại thuật toán đi, bạn nên dựa vào cái thông báo lỗi (ở đây là overflow) để mà sửa

                    Comment

                    LHQC

                    Collapse
                    Working...
                    X