#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
float d,x1,x2,x;
printf("phuong trinh bac 2 ax^2+bx+c=0 \n");
printf("nhap gia tri cho a= \n");
scanf("%d", &a);
printf("nhap gia tri cho b= \n");
scanf("%d", &b);
printf("nhap gia tri cho c= \n");
scanf("%d", &c);
if (a==0)
{
x=-c/b;
printf("phuong trinh co mot 1 nghiem x="),printf("%f",x);
}
if (a!=0)
{
d=b*b-4*a*c;
if(d<0)
{
printf("phuong trinh vo nghiem");
}
else if(d==0)
{
x1=x2=-b/(2*a);
printf("phuong trinh co nghiem kep x1=x2= "),printf("%f", x1,x2);
}
else
{
x1=(-b-d)/(2*a);
x2=(-b+d)/(2*a);
printf("phuong trinh co 2 nghiem \n");
printf("x1=%f \n", x1);
printf("x2=%f \n", x2);
}
}
return 0;
}
Em viết có dài quá không ạ?
Đến title còn dài thì nói gì đến code :)))
Bài toán tìm nghiệm cho phương trình bậc 2 thường dành cho các bạn mới học code và chỉ dùng if, else để tìm nghiệm. Với đối tượng này, thì bài viết rất tốt, chỉ cần căn lề một chút là được.
Em có thể thêm đối tượng muốn chia sẻ vào titlte: Chia sẻ code giải phương trình bậc 2, dành cho người mới bắt đầu.
Đừng quan tâm nhiều, vì bài viết của em không dành cho những người tưởng mình giỏi. Nếu họ giỏi thật thì đã góp ý sửa cho e rồi. 
Nhìn sơ sơ có vẻ ổn, nhưng có vài điểm theo mình cần sửa lại:
- Bạn đã có
if (a == 0)ở trên rồi tại sao bên dưới lại cầnif (a != 0)chi nữa. Dùng else là được mà. - Nếu trường hợp a=0 thì bạn xem lại cách giải phương trình bậc 1 nhé.
- Không nên khai báo x1, x2 trước, khi nào cần dùng hãy khai báo. VD thay vì
float x1, x2;
if (d > 0)
{
x1 = ...
x2 = ...
}
thì hãy thay bằng
if (d > 0)
{
float x1 = ...
float x2 = ....
}
- Viết code thụt lề cho thống nhất, code của bạn thụt lề khá khó chịu.
Dạ vâng, em cũng đang tự hx đây ạ
để em thử, lúc em viết, thường bị lỗi ở if, else if, và else.
if … else… nghĩa là
Nếu đúng thì làm {đoạn code 1}
còn không thì làm {đoạn code 2}
vế if là bắt buộc, còn else có thể có có thể không.
if … else if là lệnh if lồng nhau, không giới hạn số lượng else if bên trong, nhưng được khuyến cáo không nên else if nhiều quá (tìm cách khác để giảm bớt else if)
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?