Announcement

Collapse
No announcement yet.

[C++] Nhờ xem giúp bài toán giải PT bậc 2

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

  • [C++] Nhờ xem giúp bài toán giải PT bậc 2

    Nhờ mấy sư huynh xem giúp sao em đã cố tìm hiểu mình bị sai lỗi nào rồi mà mãi vẫn chưa đc .
    Đề bài là : Giải PT bậc 2

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    void main ()
    {
        
        
    int a;
        
    int b;
        
    int c;
        
    int delta;
        
    int x1;
        
    int x2;
        
    printf(" Voi PT dang Ax^2 + Bx + C = 0 thi gia tri A la : ");
    scanf("%f",&a);
    printf(" Gia tri B la : ");
    scanf("%f",&b);
    printf(" Gia tri C la : ");
    scanf("%f",&c);         //Da xong phan nhap du lieu

    {
        if (
    a==0)  
            {
                if (
    b==0
                {
                    if (
    c==0printf("PT da cho co vo so nghiem ");
                    else 
    printf("PT da cho vo nghiem ");
                      }
                else 
                   { 
                    
                    
    printf("PT da cho co 1 nghiem ");
                    
    printf("x1=%f",x1);
                      }
               }
        else 
       {
        
    delta=b*b-4*a*c;
        if (
    delta<0printf("PT vo nghiem");
        if (
    delta==0)
        {
            
    printf("PT da cho co nghiem kep");
            
    printf("x1=x2=%f",-b/2a);
        }
        else 
        {
            
    printf("PT da cho co 2 nghiem");
            
    printf("x1=%f",(-b+sqrt(delta))/2a);
            
    printf("x2=%f",(-b-sqrt(delta))/2a);
        }    
       }
    }

    Em cũng thử vài bài khác trên mạng về chạy nhưng đều fail , ko biết tại sao lun :unhappy::unhappy:

  • #2
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    void main ()
    {

    int a;
    int b;
    int c;
    int delta;
    int x1;
    int x2;

    printf(" Voi PT dang Ax^2 + Bx + C = 0 thi gia tri A la : ");
    scanf("%f",&a);
    printf(" Gia tri B la : ");
    scanf("%f",&b);
    printf(" Gia tri C la : ");
    scanf("%f",&c); //Da xong phan nhap du lieu

    {
    if (a==0)
    {
    if (b==0)
    {
    if (c==0) printf("PT da cho co vo so nghiem ");
    else printf("PT da cho vo nghiem ");
    }
    else
    {

    printf("PT da cho co 1 nghiem ");
    printf("x1=%f",x1);
    }
    }
    else
    {
    delta=b*b-(4*a*c);
    if (delta<0) printf("PT vo nghiem");
    if (delta==0)
    {
    printf("PT da cho co nghiem kep");
    printf("x1=x2=%f",-b/(2*a));
    }
    else
    {
    printf("PT da cho co 2 nghiem");
    printf("x1=%f",(-b+sqrt(delta))/(2*a));
    printf("x2=%f",(-b-sqrt(delta))/(2*a));
    }
    }
    }
    }
    chạy rồi đó, mà ko biết ra kết quả như thế nào thôi, bạn test lại

    Comment


    • #3
      Originally posted by 12520782 View Post
      chạy rồi đó, mà ko biết ra kết quả như thế nào thôi, bạn test lại
      bỏ vô thẻ CODE hoặc PHP đi cậu.
      Mà nhìn sơ qua thì không thấy dùng biến x1,x2 đâu ?

      Comment


      • #4
        Khai báo kiểu int sao trong scanf lại để %f phải là %d chứ.
        Muốn để %f thì khai báo float
        (-b+sqrt(delta))/2a <== này sai nữa nè.
        phải là :(-b+sqrt(delta))/(2*a)
        Last edited by 11520348; 21-10-2012, 01:20.

        Comment


        • #5
          #include <stdio.h>
          #include <conio.h>
          #include <math.h>

          void main ()
          {

          int a;
          int b;
          int c;
          float delta;
          int x1;
          int x2;

          printf(" Voi PT dang Ax^2 + Bx + C = 0 thi gia tri A la : ");
          scanf("%d",&a);
          printf(" Gia tri B la : ");
          scanf("%d",&b);
          printf(" Gia tri C la : ");
          scanf("%d",&c); //Da xong phan nhap du lieu

          {
          if (a==0)
          {
          if (b==0)
          {
          if (c==0) printf("PT da cho co vo so nghiem ");
          else printf("PT da cho vo nghiem ");
          }
          else
          {

          printf("PT da cho co 1 nghiem ");
          printf("x1=%f",-c/b);
          }
          }
          else
          {
          delta=b*b-4*a*c;
          if (delta<0) printf("PT vo nghiem");
          if (delta==0)
          {
          printf("PT da cho co nghiem kep");
          printf("x1=x2=%f",-b/(2*a));
          }
          else
          {
          printf("PT da cho co 2 nghiem");
          printf("x1=%f",(-b+sqrt(delta))/(2*a));
          printf("x2=%f",(-b-sqrt(delta))/(2*a));
          }
          }
          }
          }
          chỗ sai của bạn:
          1. bạn khai báo a,b,c là int nhưng trong scanf bạn lại để %f, ĐÚng là %d.
          2. Trong phần biện luận a=0, b!= 0, x1 ở đây là gì vậy bạn.???
          3. (-b+sqrt(delta))/2a. máy sẽ tính là: (-b+sqrt(delta)) rồi đem chia cho 2 sau đó lại nhân cho a. Riêng ở đây thì bạn sai, đúng la: ((-b+sqrt(delta))/(2*a)) các chỗ khác tương tự.
          4. delta của bạn nên để kiểu float...nếu ko máy sẽ báo lỗi "ambiguous" gọi nhọc nhằn.....hoặc có thể ép kiểu cũng đc.
          5. bạn khai báo x1, x2 để làm gì trong khi bạn ko dùng tới.
          :misdoubt:
          University of Information Technology - VNU HCM
          Student of Faculty of Computer Engineering
          Email : truong.ngohieu@gmail.com
          Tel : 0962 306 517

          Comment


          • #6
            của chú đây.
            MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.


            chú code ngữ pháp thì tè le nhưng mà được cái thuật toán củng sai nốt, xem lại đi nha

            Originally posted by 12520804 View Post
            Nhờ mấy sư huynh xem giúp sao em đã cố tìm hiểu mình bị sai lỗi nào rồi mà mãi vẫn chưa đc .
            Đề bài là : Giải PT bậc 2

            PHP Code:
            #include <stdio.h>
            #include <conio.h>
            #include <math.h>

            void main ()
            {
                
                
            int a;
                
            int b;
                
            int c;
                
            int delta;
                
            int x1;
                
            int x2;
                
            printf(" Voi PT dang Ax^2 + Bx + C = 0 thi gia tri A la : ");
            scanf("%f",&a);
            printf(" Gia tri B la : ");
            scanf("%f",&b);
            printf(" Gia tri C la : ");
            scanf("%f",&c);         //Da xong phan nhap du lieu

            {
                if (
            a==0)  
                    {
                        if (
            b==0
                        {
                            if (
            c==0printf("PT da cho co vo so nghiem ");
                            else 
            printf("PT da cho vo nghiem ");
                              }
                        else 
                           { 
                            
                            
            printf("PT da cho co 1 nghiem ");
                            
            printf("x1=%f",x1);
                              }
                       }
                else 
               {
                
            delta=b*b-4*a*c;
                if (
            delta<0printf("PT vo nghiem");
                if (
            delta==0)
                {
                    
            printf("PT da cho co nghiem kep");
                    
            printf("x1=x2=%f",-b/2a);
                }
                else 
                {
                    
            printf("PT da cho co 2 nghiem");
                    
            printf("x1=%f",(-b+sqrt(delta))/2a);
                    
            printf("x2=%f",(-b-sqrt(delta))/2a);
                }    
               }
            }

            Em cũng thử vài bài khác trên mạng về chạy nhưng đều fail , ko biết tại sao lun :unhappy::unhappy:

            Comment


            • #7
              Originally posted by 11520132 View Post
              bỏ vô thẻ CODE hoặc PHP đi cậu.
              Mà nhìn sơ qua thì không thấy dùng biến x1,x2 đâu ?
              bỏ vô thẻ CODE hoặc PHP là sao anh? anh hướng dẫn cụ thể!

              Comment


              • #8
                Originally posted by 12520782 View Post
                bỏ vô thẻ CODE hoặc PHP là sao anh? anh hướng dẫn cụ thể!
                là đặt code bạn vào 2 cái thẻ ntn nè [ PHP ] blah blah [ / PHP ]
                PHP Code:
                blah blah 

                Comment


                • #9
                  anh cũng phê phê rồi. nhưng thấy sai khá nhiều á! Học cách debug đi em!
                  -----------------------------
                  Mai Văn Khải
                  Software Engineering, University Information of Technology
                  a07d26eb5cbc98f77b36a461eb629456

                  Comment


                  • #10
                    Đây nek bạn

                    Code:
                    #include <stdio.h> 
                    #include <conio.h> 
                    #include <math.h> 
                    
                     main () 
                    { 
                         int a, b, c; // Khai bao bien
                         float x1, x2, delta; // Khai bao nghiem
                    	
                         
                    printf("Giai phuong trinh bac 2: Ax^2 + Bx + C = 0 \n");
                    printf("Nhap a, b, c:\n"); // Nhap a, b, c
                    scanf("%d%d%d", &a, &b, &c);
                    { 
                        if (a==0)   // a equal to 0, check b
                            { 
                                if (b==0)  // b equal to 0, check c
                                { 
                                    if (c==0) printf("PT da cho co vo so nghiem\n"); 
                                    else printf("PT da cho vo nghiem\n"); 
                                      } // end inner if
                                else  
                                   {  
                                    x1=(float)(-c)/b; 
                                    printf("PT da cho co 1 nghiem.\n "); 
                                    printf("x1=%f",x1); 
                                   } // end if 
                               } // end outer if
                        else  
                       { 
                        delta=b*b-4*a*c; // Tinh delta
                        if ( delta < 0) { 
                    	           printf("PT vo nghiem\n"); 
                                        }
                    			 if ( delta == 0) 
                        { 
                            printf("PT da cho co nghiem kep\n"); 
                            printf("x1=x2=%f",(float)(-b)/(2*a)); 
                        } 
                        else  
                        { 
                            printf("PT da cho co 2 nghiem\n"); 
                    
                    	
                    		x1 =(-b + sqrt(delta))/(2*a);	
                    		x2 =(-b - sqrt(delta))/(2*a);
                    		printf("x1 = %f\n", x1);
                    		printf("x2 = %f\n", x2);
                        }     
                       } 
                    } 
                    _getch();
                    }
                    :stick::stick:

                    Comment


                    • #11
                      viết = c được không nhỉ


                      Code:
                      #include <conio.h>
                      #include <stdio.h>
                      #include <math.h>
                      void main()
                      {
                      float a,b,c,x,x1,x2,delta;
                      printf("\n  PT bac 2\n");
                      printf("\n nhap he so a=");
                      scanf("%f",&a);
                      printf("\n nhap he so b=");
                      scanf("%f",&b);
                      printf("\n nhap he so c=");
                      scanf("%f",&c);
                      if (a==0)
                      if (b==0)
                      if (c==0)
                      printf("\n pt vsn");
                      else
                      printf("\n pt vn ");
                      else
                      {
                      x=-c/b;
                      printf("\n pt co nghiem = %.2f",x);
                      }
                      else
                      delta=b*b-4*a*c;
                      
                      if (delta <0)
                      printf("\n pt vn");
                      else
                      if (delta==0)
                      {
                      x=-b/(2*a);
                      printf("\n PT co nghem kep=%.2f",x);
                      }
                      else
                      {
                      x1=(-b+sqrt(delta))/(2*a);
                      x2=(-b-sqrt(delta))/(2*a);
                      printf("\n PT co 2 ngiem x1=%2.f \t x2=%.2f",x1,x2);
                      }
                      getch();
                      }

                      Comment

                      LHQC

                      Collapse
                      Working...
                      X