a
, b
, c
ইনপুট নিয়ে Discriminant বের করতে হয়।switch
এর মাধ্যমে রুটের ধরণ চেক করা।sqrt()
ফাংশনের ব্যবহার (math.h হেডার ফাইল)।a
, b
, c
ইনপুট নেওয়া হবে scanf()
ব্যবহার করে।
D = b*b - 4*a*c;
status = (D > 0) ? 1 : ((D == 0) ? 0 : -1);
switch(status)
{
case 1 → দুইটি বাস্তব ও ভিন্ন রুট
case 0 → দুইটি বাস্তব ও সমান রুট
case -1 → দুইটি কাল্পনিক (Imaginary) রুট
}
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, discriminant, root1, root2, realPart, imagPart;
int status;
printf("a, b, c এর মান দিন (ax^2 + bx + c): ");
scanf("%f %f %f", &a, &b, &c);
discriminant = b * b - 4 * a * c;
status = (discriminant > 0) ? 1 : ((discriminant == 0) ? 0 : -1);
switch(status) {
case 1:
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("দুইটি বাস্তব ও ভিন্ন রুট: %.2f এবং %.2f", root1, root2);
break;
case 0:
root1 = root2 = -b / (2 * a);
printf("দুইটি বাস্তব ও সমান রুট: %.2f এবং %.2f", root1, root2);
break;
case -1:
realPart = -b / (2 * a);
imagPart = sqrt(-discriminant) / (2 * a);
printf("দুইটি কাল্পনিক রুট: %.2f + %.2fi এবং %.2f - %.2fi",
realPart, imagPart, realPart, imagPart);
break;
default:
printf("ত্রুটি ঘটেছে!");
}
return 0;
}
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 5 6
আউটপুট:
দুইটি বাস্তব ও ভিন্ন রুট: -2.00 এবং -3.00
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 2 1
আউটপুট:
দুইটি বাস্তব ও সমান রুট: -1.00 এবং -1.00
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 1 5
আউটপুট:
দুইটি কাল্পনিক রুট: -0.50 + 2.18i এবং -0.50 - 2.18i
scanf()
→ ইউজার ইনপুট নেয়।discriminant = b² - 4ac
→ রুট নির্ধারণে সাহায্য করে।status
→ ternary দিয়ে D-এর মান অনুযায়ী অবস্থা নির্ধারণ।switch(status)
→ তিনটি কেস অনুযায়ী রুট নির্ধারণ।sqrt()
→ বর্গমূল বের করতে math.h হেডার প্রয়োজন।%.2f
→ দশমিকের পরে ২ ঘর পর্যন্ত মান দেখায়।