Witam
Jestem studentem pierwszego roku informatyki. W związku z tym ,że nadchodzi dużymi krokami egzamin z podstaw programowania postanowiłem sobie ,że w ramach nauki do egzaminu zrobię raz jeszcze zadania , które robiliśmy
przez cały semestr na laboratoriach jednak postanowiłem je troszeczkę przerobić. Postanowiłem każde zadanie robić na funkcjach mimo tego że zadanie tego nie wymaga , żeby jak najlepiej nauczyć się funkcji ale do rzeczy.
Mam takie oto zadanie:Napisz program, ktory oblicza pierwiastki rownania kwadratowego
A*X*X + B*X + C = 0. Wspolczynniki nalezy odczytac z klawiatury.
Nalezy wykluczyc probe pierwiastkowania liczby ujemnej. W takim przypadku
na ekranie powinien sie pojawic odpowiedni komunikat. Napisałem taki oto kod programu:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void pierwiastki_rownania_kwadratowego(int a,int b,int c , int *delta, float *pier,float *x0,float *x1,float *x2)
{
int w=2;
*delta=pow(b,w) - (4*a*c);
*pier=sqrt(*delta);
*x1=(-b-*pier)/(2*a);
*x2=(-b+*pier)/(2*a);
*x0=(-b)/(2*a);
}
int main(void)
{
int a,b,c,delta;
float pier,x0,x1,x2;
pierwiastki_rownania_kwadratowego(a,b,c,&delta,&pier,&x0,&x1,&x2);
printf("podaj wspolczynniki rownania kwadratowego Ax*x+bx+c: \n");
printf("Podaj wspolczynnik a: ");
scanf("%d",&a);
printf("podaj wspolczynnik b: ");
scanf("%d",&b);
printf("podaj wspolczynnik c: ");
scanf("%d",&c);
printf("Wspolczynniki rownania to: \n a=%d ,b=%d , c=%d \n",a,b,c );
if(delta>0)
{
printf("delta wynosi:%d \n",delta);
printf("pierwiastek z delty wynosi: %.2f \n",pier);
printf("pierwiastki rownania wynosza:\n x1=%.2f, x2=%.2f \n\n",x1,x2);
}
else if(delta==0)
{
printf("delta wynosi: %d \n",delta);
printf("pierwiastek rownania wynosi: x0=%.2f \n\n",x0);
}
else
{
printf("delta wynosi: %d \n",delta);
printf("brak rozwiazania w zbiorze liczb rzeczywistych poniewarz delta jest ujemna \n\n");
}
system("pause");
return (0);
}
Problem polega na tym , że delta nie jest poprawnie zwracano wychodzą jakieś śmieci próbowałem ją wyzerować ale nic nie pomogło.Czy ktoś może misprawdzić ten kod i powiedzieć co mam źle i co muszępoprawić?. Z góry dziękuję.