Code giải phương trình bậc 2 C++

Viết chương trình cho nhập các hệ số của phương trình bậc nhất hai ax^2 + bx + c = 0, hãy in ra màn hình nghiệm của phương trình đã cho.


Trong bài tập này người dùng có thể nhập vào a = 0.

Video giải thích chi tiết về Giải phương trình bậc hai ax^2+bx+c = 0 trong lập trình C



// Giai phuong trinh bac 2: ax^2 + bx + c = 0 #include "stdio.h" #include "math.h" int main(){ // Khai bao float a,b,c,x1,x2, delta; // Nhap lieu printf("Nhap vao he so a, b, c"); scanf("%f%f%f", &a, &b, &c); // Tinh toan va xuat ket qua if (a==0){ printf("\nHe so a phai khac 0"); }else{ // a !=0 delta = pow(b, 2)-4*a*c; printf("\ndelta = %.2f", delta); if (delta>0){ x1 = (-b-sqrt(delta))/(2*a); x2 = (-b+sqrt(delta))/(2*a); printf("\nPhuong trinh co nghiem phan biet: x1=%.2f va x2=%.2f", x1, x2); }else if(delta==0){ x1 = -b/(2*a); printf("\nPhuong trinh co nghiem kep x1=x2=%.2f", x1); }else{ printf("\nPhuong trinh vo nghiem"); } } }

Viết chương trình giải phương trình bậc 2 trong C. Phương trình bậc 2 có dạng:

Code giải phương trình bậc 2 C++

Lời giải

Lời giải của chúng tôi sử dụng phương thức sqrt() để tính căn bậc 2 của một số trong C. Sử dụng phương thức scanf(“%f”, &a) để đọc số thực từ bàn phím và gán cho biến a.

#include /** * giai phuong trinh bac 2: ax2 + bx + c = 0 * * @param a: he so bac 2 * @param b: he so bac 1 * @param c: so hang tu do */ void giaiPTBac2(float a, float b, float c) { // kiem tra cac he so if (a == 0) { if (b == 0) { printf("Phuong trinh vo nghiem!"); } else { printf("Phuong trinh co mot nghiem: x = %f", (-c / b)); } return; } // tinh delta float delta = b*b - 4*a*c; float x1; float x2; // tinh nghiem if (delta > 0) { x1 = (float) ((-b + sqrt(delta)) / (2*a)); x2 = (float) ((-b - sqrt(delta)) / (2*a)); printf("Phuong trinh co 2 nghiem la: x1 = %f va x2 = %f", x1, x2); } else if (delta == 0) { x1 = (-b / (2 * a)); printf("Phong trinh co nghiem kep: x1 = x2 = %f", x1); } else { printf("Phuong trinh vo nghiem!"); } } /** * ham main */ int main() { float a, b, c; printf("Nhap he so bac 2, a = "); scanf("%f", &a); printf("Nhap he so bac 1, b = "); scanf("%f", &b); printf("Nhap so hang tu do, c = "); scanf("%f", &c); giaiPTBac2(a, b, c); return 1; }

Kết quả:

Nhap he so bac 2, a = 2 Nhap he so bac 1, b = 3 Nhap so hang tu do, c = 1 Phuong trinh co 2 nghiem la: x1 = -0.500000 va x2 = -1.000000

// Bai toan giai phuong trinh bac hai

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

  float a, b, c, d, x1, x2;

  clrscr();

  printf("\nNhap vao a: ");

  scanf("%f",&a);

  printf("\nNhap vao b: ");

  scanf("%f",&b);

  printf("\nNhap vao c: ");

  scanf("%f",&c);

  if(a==0){

    if(b==0){

      if(c==0){

        printf("\nPhuong trinh vo so nghiem!");

      }

      else{

        printf("\nPhuong trinh vo nghiem!");

      }

    }

    else{

      printf("\nPhuong trinh co mot nghiem, x = %g",-c/b);

    }

  }

  else{

    d=b*b-4*a*c;

    if(d<0){

      printf("\nPhuong trinh vo nghiem!");

    }

    else if(d==0){

      printf("\nPhuong trinh co nghiem kep, x1 = x2 = %g",-b/(2*a));

    }

    else{

      printf("\nPhuong trinh co hai nghiem phan biet:");

      x1=(-b+sqrt(d))/(2*a);

      x2=(-b-sqrt(d))/(2*a);

      printf("\nx1 = %g",x1);

      printf("\nx2 = %g",x2);

    }

  }

  getch();
}