Giải phương trình bậc nhất ax + b = 0

Đề bài: Giải phương trình bậc nhất ax + b = 0 (a khác 0) Với các hệ số a, b được nhập vào từ bàn phím.

Để giải bài này, các bạn nhớ lại kiến thức toán học của chúng ta đã học thời phổ thông.
Do a khác 0 nên ta luôn có nghiệm x = -b/a. Vậy thì dễ dàng rồi, công thức đã có, giờ chỉ cần code thôi.

code by nguyenvanquan7826 - fileName: PTB1.c
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
/*
*   Giai Phuong trinh ax + b = 0
*/
 
#include <stdio.h>
 
int main() {
    float a, b;
    printf("Enter a and b: ");
    scanf("%f%f", &a, &b);
 
    if(a == 0) {
        printf("You must enter a <> 0 !\n");
    } else {
        printf("Result: x = %.2f\n", -b/a);
    }
 
    return 0;
}

Đơn giản vậy thôi. Tuy nhiên giờ chúng ta thử nâng cấp thêm 1 chút nữa là nếu cho phép nhập a = 0 thì sao?

Đề bài: Giải phương trình bậc nhất ax + b = 0 (a có thể bằng 0) Với các hệ số a, b được nhập vào từ bàn phím.

Như vậy chúng ta cần nhớ lại, nếu a = 0 thì phương trình trở thành b = 0. Nếu b = 0 thì phương trình trở thành 0 = 0, luôn đúng do vậy phương trình luôn đúng với mọi x. Nếu b khác 0, khi đó phương trình sẽ vô nghiệm. Vậy chỉ cần dùng if else kiểm tra các trường hợp thêm một chút là xong.

code by nguyenvanquan7826 - fileName: PTB1.c
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
*   Giai Phuong trinh ax + b = 0
*/
 
#include <stdio.h>
 
int main() {
    float a, b;
    printf("Enter a and b: ");
    scanf("%f%f", &a, &b);
 
    if(a == 0) {
        if(b == 0) {
            printf("True with all x\n");
        } else {
            printf("Impossible equation (No result for x)\n");
        }
 
 
    } else {
        printf("Result: x = %.2f\n", -b/a);
    }
 
    return 0;
}