Я просто хочу знать, как я могу оптимизировать свой код на C. Моя программа отлично работает, я тестировал ее со множеством разных значений, все хорошо. Тем не менее, я хотел бы сократить количество строк и написать свою программу в лучшем качестве. Вот исходный код:Как оптимизировать мой C-код для решения квадратичных уравнений в R?
#include <stdio.h>
#include <math.h>
int main(void) {
float a,b,c,x,x1,x2;
printf("aX^2 + bX + c = 0\n");
printf("Type the value of a: ");
scanf("%f", &a);
printf("Type the value of b: ");
scanf("%f", &b);
printf("Type the value of c: ");
scanf("%f", &c);
if (a!=0 && b!=0 && c!=0){
float delta = b*b - 4*a*c;
if (delta>0){
x1 = (-b-sqrt(delta))/(2*a);
x2 = (-b+sqrt(delta))/(2*a);
printf("Solutions are x1 = %f and x2 = %f\n",x1,x2);
}
else if (delta == 0){
x = -b/(2*a);
printf("One unique solution is x = %f\n", x);
}
else {
printf("No solutions !\n");
}
}
if (a==0 && b!=0 && c!=0)
printf("One unique solution x = %f\n", -c/b);
if (a==0 && b==0 && c!=0)
printf("No solutions !\n");
if (a==0 && b==0 && c==0)
printf("Set of solutions is R\n");
if (a!=0 && b==0 & c!=0) {
x = -c/a;
if(x>=0)
printf("Two soltions x = %f et -x = %f\n", sqrt(x),-sqrt(x));
else{
printf("No solutions !\n");
}
}
if (a!=0 && b==0 && c==0)
printf("One unique x = 0\n");
}
Этот вопрос может быть лучше подходит для codereview.stackexchange.com. –
@JimLewis Я не знал об этой ссылке, я положу ее туда. Спасибо друг. –
Одна небольшая оптимизация: используйте 'else if' вместо всех raw' if's. Это позволит избежать ненужных сравнений после согласования одного условия if. –