Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình thử copy bài mẫu giải phương trình bậc hai trong phần bài tập cơ bản của mấy bạn post lên thì chương trình giải cũng cho kết quả sai luôn. Mình dùng bc5.02 để viết và chạy. Bài mẫu đây ạ:
    /* Bai tap 4_1 - Giai phuong trinh bac hai AX˝ + BX + C = 0 */
    #include <stdio.h>
    #include <math.h>

    void main()
    {
    float a, b, c, delta;

    printf("
    Giai phuong trinh bac hai AX˝ + BX + C = 0");
    printf("
    Cho biet ba he so A B C : ");
    scanf("%f%f%f", &a, &b, &c);

    delta = b * b - 4 * a * c;
    if (delta<0)
    printf("Phuong trinh vo nghiem");
    else if (delta == 0)
    printf("Phuong trinh co nghiem kep x1 = x2 = %f", -b/(2*a));
    else
    {
    printf("Phuong trinh co hai nghiem phan biet
    x1 = %f", (-b + sqrt(delta))/(2*a));
    printf("
    x2 = %f", (-b - sqrt(delta))/(2*a));
    }
    getch();
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Sai trong lời gọi scanf [IMG]images/smilies/biggrin.png[/IMG]

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Có lẽ bạn đánh máy nhầm dòng delta = b*b+4*a*c; trong khi thực sự mã trong chương trình của bạn là delta = b*b-4*a*c;
    Còn với Ví dụ của bạn, có lẽ bạn đã gõ các ký tự sau: '3' , '0', '-', '2'. scanf sẽ chuyển ép ký tự '-' vào biến c và sẽ là số dương. Dẫn tới delta = b*b - 4*a*c sẽ nhỏ hơn 0.
    Cuối cùng điều kiện delta<0 phù hợp với lệnh printf("
    Phuong trinh khong co thuc");

    Đây là phỏng đoán của mình thôi, phương trình bậc 2 mình đã trả lại thầy cô hết rồi. Thân

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Các bạn sửa lỗi dùm mình với!

    //Giai phuong trinh bac 2
    #include "stdio.h"
    #include "conio.h"
    #include "math.h"
    void main()
    {
    float a,b,c;
    float delta;
    printf("
    Nhap a,b,c:");
    scanf("%f%f%f",&a,&b,&c);
    delta=b*b-4*a*c;
    if (delta==0)
    printf("
    Phuong trinh co nghiem kep x=%10.2f",-b/(2*a));
    else
    if (delta>0)
    {
    printf("
    Phuong trinh co 2 nghiem:
    x1=%10.2f",(-b-sqrt(delta))/(2*a));
    printf("
    x2=%10.2f",(-b+sqrt(delta))/(2*a));
    }
    else
    printf("
    Phuong trinh khong co thuc");
    getch();
    }

    Mình làm xong kiểm tra không có lỗi nhưng nhập số vô tính thử thì lại sai. VD pt: 3xx -2=0 nó ra pt ko co thuc

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •