Wpis z mikrobloga

#programowanie
siema sprawdzi mi ktoś co nie działa w moim kodzie,
dopiero zaczynam programować i nie ogarniam jeszcze wszystkiego
kod jest pisany w C

#include
#include
#include
int main()
{
int a;
int b;
int c;
int d= pow(b,2) - 4*a*c ;
int o= (-b)/(2*a) ;
int j= (-b -sqrt(d))/(2*a) ;
int y= (-b + sqrt(d))/(2*a);
printf("wprowadz wartosc a = \n");
scanf("%d",&a);
printf("wprowadz wartosc b= \n");
scanf("%d",&b);
printf("wprowadz wartosc c= \n");
scanf("%d",&c);

if("%d > 0",d){
printf("dwa mijsca zerowe równe = %d\t %d",j,y);

}else if("%d = 0",d){
printf("delta zerowa - jedno miejsce zerowe o wartosci = %d",o);
}else{
printf("delta ujemna = brak miejsc zerowych\d");
}
return 0;

}
  • 6
if("%d > 0",d)

@wojak142: Ło panie, tak to nie.
if() traktuje cokolwiek niezerowego jako true dlatego te twoje ify zawsze się wykonają bo tablica znaków "%d > 0",d to tak naprawdę pointer na jej początek czyli coś koło 0x55bc146d3008

powinno być:
if(d>0)

poza tym zauważ, że pow() działa tak:
double pow(double x, double y)

pozamieniaj te inty na double i format stringi z %d na %f