Witam , czy mogłby ktos madrzejszy popatrzec podpowiedziec co moze byc zle? program rozwiazuje rownanie kwadratowe, wartosci maja byc zwracane poprzez adres, zastosowalem wskazniki ale nie wiem czy dobrze
#include<stdio.h>
#include<math.h>
int rownanie_kw(float a, float b, float c, float *x1, float *x2)
{
float delta=b*b-4*a*c;
printf("Delta wynosi: %f\n",delta);
if(delta>0.000001)
{
*x1=(-b-sqrt(delta))/2/a;
*x2=(-b+sqrt(delta))/2/a;
return 2;
}
else if(delta> -0.000001)
{
*x1=-b/2/a;
return 1;
}
else
return 0;
}
main(int argc,char *argv[])
{
float a,b,c,X1,X2;
a=2, b=6, c=3.5; // domyslne wspolczynniki rownania
if (argc == 4)
{
a = atof(argv[1]); b = atof(argv[2]); c = atof(argv[3]);
}else {
printf("*******************************************\n");
printf("Musisz podac dane jako argumenty programu.\nTeraz uzywam domyslnych.\n");
printf("*******************************************\n"); }
printf("\nRownanie kwadratowe: %.9gx2 + %.9gx + %.9g = 0\n", a, b, c);
int ilosc_wynikow;
ilosc_wynikow=rownanie_kw(a,b,c,&X1,&X2);
switch(ilosc_wynikow){
case 1:
{
printf ("Funkacja ma tylko jedno rozwiazanie\n") ;
printf ("x = %f\n", X1);
} break;
case 2:
{
printf ("Funkcja ma dwa rozwiazania\n");
printf ("x1 = %f, x2 = %f \n",X1,Xd2);
} break;
case 0:
printf ("Funkcja nie ma rozwiazan\n");
}
return 0;
}