Announcement

Collapse
No announcement yet.

[C++] các sư huynh kiểm tra dùm e bài giải PT bậc 2 với!!!!

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

  • [C++] các sư huynh kiểm tra dùm e bài giải PT bậc 2 với!!!!

    tình hình là e new làm xong bài giải PT bậc 2 mà hok biết sai chổ nào.:beatbrick:
    nó cứ báo waring: incompatible implicit declaration of buitl-in function 'sqrt'
    xin các huynh chỉ giáo giúp!!!:sogood:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
    int a;
    int b;
    int c;
    int delta;
    float x1;
    float x2;
    printf("Phuong trinh bac 2 co dang ax^2 + bx + c = 0 moi ban nhap a");
    scanf("%f",a);
    printf("nhap b");
    scanf("%f",b);
    printf("nhap c");
    scanf("%f",c);
    {
    if (a=0)
    {
    if (b=0)
    {
    if (c=0) printf("Phuong trinh da cho vo so nghiem");
    else printf("Phuong trinh da cho vo nghiem");
    }
    else
    {
    x1=-b/c;
    printf("Phuong trinh da cho co 1 nghiem:");
    printf("%f",x1);
    }
    }
    else
    {
    delta=b*b-4*a*c ;
    if (delta<0) printf("Phuong trinh da cho vo nghiem");
    if (delta=0)
    {
    x1=-b/(2*a);
    printf("Phuong trinh da cho co nghiem kep:");
    printf("%f",x1);
    }
    if (delta>0)
    {
    x1=(-b+sqrt(delta))/(2*a);
    x2=(-b-sqrt(delta))/(2*a);
    printf("Phuong trinh da cho co 2 nghiem phan biet");
    printf("%f",x1);
    printf("%f",x2);
    }
    }
    }
    }

  • #2
    scanf("%f",a);
    phải là scanf("%f",&a); nhé, mà phải là scanf("%d",a) mới đúng, các chỗ khác sữa tương tự :badsmell:
    vì e có xài sqrt nên phải khai báo thêm thư viện <math.h> nữa
    delta không phải lúc nào cũng ra kiểu int nên khai báo là float thì đúng hơn & tránh lỗi
    {
    if (a=0)
    dư dấu "{" trước if
    Last edited by 11520231; 22-10-2012, 12:04.

    Comment


    • #3
      hjc.tks a.e sua oy.no k bao lỗi nữa...nhưng giờ e nhập a b c zo xong nó k ra kết quả. ma thoát lun.

      Comment


      • #4
        Originally posted by 12520471 View Post
        hjc.tks a.e sua oy.no k bao lỗi nữa...nhưng giờ e nhập a b c zo xong nó k ra kết quả. ma thoát lun.
        e khai báo int a mà sao lại là scanf("%f",&a) -> scanf("%d",&a);
        e thêm getch(); cuối main nhé :adore:
        Last edited by 11520231; 22-10-2012, 12:06.

        Comment


        • #5
          a,b,c,delta nên là float lun bạn ơi...
          ...mỗi ngày tôi chọn một niềm vui... :happy:
          ...chọn tới chọn lui...hết một ngày...
          :nosebleed:

          Comment


          • #6
            Mấy biến a,b,c, delta đừng để int Trung ơi, lúc nhập mà a,b,c hoặc tính delta ra là số thập phân nó báo lỗi đấy
            [CENTER]CHỮ KÍ LÀ CÁI GÌ ẤY NHỈ - TỚ CŨNG KO BIẾT NỮA CƠ ::sogood::

            Comment


            • #7
              Em nhập vào thì ("%d",&a);
              còn tính nghiệm thì = (float)sqrt(delta);

              Comment


              • #8
                thuật toán & code viết ẩu quá
                + Về thuật toán :
                - xét a=0: nếu b=0, c != 0 : vô nghiêm
                b!=0 : có 1 nghiệm x=-c/a
                - xét a !=0 : biện luận pt bậc 2 theo delta
                + Về code :
                - khai báo kiều biến & gọi không đồng nhất
                - code viết khá dài dòng, vd : thay vì : int a,b,c; cho gọn, ban lại int a; int b; int c; ...
                :embarrassed:

                Comment


                • #9
                  nó vẫn k chịu ra kết quả.hjc.:cry:
                  #include <stdio.h>
                  #include <conio.h>
                  #include <math.h>
                  void main()
                  {
                  float a;
                  float b;
                  float c;
                  float delta;
                  float x1;
                  float x2;
                  printf("Phuong trinh bac 2 co dang ax^2 + bx + c = 0 moi ban nhap a");
                  scanf("%f",&a);
                  printf("nhap b");
                  scanf("%f",&b);
                  printf("nhap c");
                  scanf("%f",&c);
                  if (a=0)
                  {
                  if (b=0)
                  {
                  if (c=0) printf("Phuong trinh da cho vo so nghiem");
                  else printf("Phuong trinh da cho vo nghiem");
                  }
                  else
                  {
                  x1=-b/c;
                  printf("Phuong trinh da cho co 1 nghiem:");
                  printf("%f",x1);
                  }
                  }
                  else
                  {
                  delta=b*b-4*a*c ;
                  if (delta<0) printf("Phuong trinh da cho vo nghiem");
                  if (delta=0)
                  {
                  x1=-b/(2*a);
                  printf("Phuong trinh da cho co nghiem kep:");
                  printf("%f",x1);
                  }
                  if (delta>0)
                  {
                  x1=(-b+sqrt(delta))/(2*a);
                  x2=(-b-sqrt(delta))/(2*a);
                  printf("Phuong trinh da cho co 2 nghiem phan biet");
                  printf("%f",x1);
                  printf("%f",x2);
                  }
                  }
                  getch();
                  }

                  Comment


                  • #10
                    scanf("%f",&a) -> scanf("%d",&a);

                    Comment


                    • #11
                      Lỗi 1: udency: if(a= 0) :waaaht: sai cơ bản luôn, dấu "=" là phép gán, dấu "==" là toán tử quan hệ so sánh bằng, còn dấu "===" tự tìm hiểu đi nha :kiss:
                      Lỗi 2: Khai báo int mà hàm scan là "%f"
                      Lỗi 3: hàm scanf là nó copy giá trị từ buffer nhập vào vùng nhớ có địa chỉ được cấp cho biến a, nen phải là "&a" (& : lấy địa chỉ của biến)
                      và còn n thiếu sót khác... nhưng newbie vậy cũng ok rồi

                      đọc lại cuốn lập trình C cơ bản đi đã :stick:
                      Last edited by 08520229; 22-10-2012, 12:36.
                      Một khẩu súng giữ hai trời Nam Bắc,
                      Một dấu chân in màu đất hai miền.

                      ------------------------------------------------------

                      Comment


                      • #12
                        tình hình là đã chạy được.hehe:sogood:
                        #include <stdio.h>
                        #include <conio.h>
                        #include <math.h>
                        void main()
                        {
                        float a,b,c,delta,x1,x2;
                        printf("Phuong trinh bac 2 co dang ax^2 + bx + c = 0 moi ban nhap a :");
                        scanf("%f",&a);
                        printf("nhap b :");
                        scanf("%f",&b);
                        printf("nhap c :");
                        scanf("%f",&c);
                        if (a==0)
                        {
                        if (b==0)
                        {
                        if (c==0) printf("Phuong trinh da cho vo so nghiem");
                        else printf("Phuong trinh da cho vo nghiem");
                        }
                        else
                        {
                        x1=-b/c;
                        printf("Phuong trinh da cho co 1 nghiem:%f",x1);
                        }
                        }
                        else
                        {
                        delta=b*b-4*a*c ;
                        if (delta<0) printf("Phuong trinh da cho vo nghiem");
                        if (delta==0)
                        {
                        x1=-b/(2*a);
                        printf("Phuong trinh da cho co nghiem kep:%f",x1);
                        }
                        if (delta>0)
                        {
                        x1=(-b+sqrt(delta))/(2*a);
                        x2=(-b-sqrt(delta))/(2*a);
                        printf("Phuong trinh da cho co 2 nghiem phan biet");
                        printf("%f",x1);
                        printf("%f",x2);
                        }
                        }
                        getch();
                        }

                        Comment


                        • #13
                          E cần phân biệt toán tử gán (a=0) với so sánh (a==0) nhé ! E sai ngay mấy chỗ này đây

                          Comment


                          • #14
                            tks cac su huynh nhju nhe!!!!:Happy:

                            Comment


                            • #15
                              Ví dụ em muốn chương trình thực hiện xong , đã ra đáp án và chỉ cần press any key là nó tiếp tục thực hiện lại ( ở đây là nhập lại các số a,b,c sau đó chạy tiếp ) thì phải xài câu lệnh nào vậy mấy huynh ?

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X