Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<math.h>
- #include<complex.h>
- main()
- {
- double a,b,c,x,delta,sqr,x1,x2;
- int k; //Slabo nazwana zmienna, nie wiadomo z gory do czego sluzy.
- /*Sprawdzanie Formatów*/
- do
- {
- printf("\nPodaj wspolczynnik a:");
- k=scanf("%lf",&a); // k + while jest niepotrzebne do sprawdzenia czy jest liczba
- // scanf przy przypisywaniu do zmiennej zwraca return code rowny liczbie znakow ktore udalo sie przypisac
- // jezeli sprobujesz przypisac litere (char) do double, to return z scanf powinien byc rowny zero (tak mi sie wydaje czytajac dokumentacje)
- if(k==0) printf("\nBlaaaaad");
- fflush(stdin);
- }
- while(k==0);
- do
- {
- printf("\nPodaj wspolczynnik b:");
- k=scanf("%lf",&b);
- if(k==0) printf("\nBlaaaaad");
- fflush(stdin);
- }
- while(k==0);
- do
- {
- printf("\nPodaj wspolczynnik c:");
- k=scanf("%lf",&c);
- if(k==0) printf("\nBlaaaaad");
- fflush(stdin);
- }
- while(k==0);
- // tu sa jakies 3 niepotrzebne tabulatory:P
- // tu jeden
- // Ogolnie powyzsze pobieranie parametrow mozna zrobic w jednym poleceniu scanf() scanf("%d %d %d", &a, &b, &c)
- /*Obliczenia*/
- // Dwa razy sprawdzasz czy a==0 && b==0, powtarzasz kod
- // Wystarczy zrobic jeden if(a==0 && b==0) i dac blad. Raczej nie trzeba sprawdzac c, bo 0x^2 + 0x + 0 to nadal funkcja stala, y=0
- if(a==0)
- {
- if(b==0)
- {
- if(c!=0) // j/w sprawdzanie c niepotrzebne jezeli juz wiesz ze a=0 i b=0
- printf("\nSprzecznosc, %.0lf=0 -Funkcja liniowa stala, nie posiada miejsc zerowych",c);
- else
- printf("\n Funkcja stala %.2lf, nieskonczenie wiele miejsc zerowych",c);
- }
- else
- {
- x=-(c/b);
- printf("\n Funkcja liniowa o miejscu zerowym x=%.2lf",x);
- }
- }
- if(b==0)
- {
- if(a==0)
- {
- if(c!=0)
- printf("\nSprzecznosc, %.0lf=0 -Funkcja liniowa stala, nie posiada miejsc zerowych",c);
- else
- printf("\n Funkcja stala %.2lf, nieskonczenie wiele miejsc zerowych",c);
- }
- else
- printf("\nBrak rozwiazan rzeczywistych,delta jest ujemna");
- /*
- delta=(b*b)-(4*(a*c));
- sqr=sqrt(delta);
- printf("\n %lf",sqr);
- */
- }
- if(c==0)
- {
- if(a==0) // znow sprawdzasz a=0 i b=0
- {
- if(b==0)
- printf("\n Funkcja liniowa stala, nieskonczenie wiele miejsc zerowych");
- else
- printf("\n Funkcja liniowa stala, o miesjscu zerowym x=0");
- }
- else
- x=-(b/a);
- x1=0;
- printf("Funkcja kwadratowa o miejscach zerowych x1=%lf i x2=%lf",x,x1);
- }
- // obliczanie delty powinno byc w jakims "else", inaczej ten kawalek kodu sie niepotrzebnie wykonuje
- delta=(b*b)-(4*(a*c));
- if(delta<0)
- printf("Delta jest ujemna, brak rozwiazan rzeczywistych");
- else if(delta==0)
- {
- x=-(b/(2*a));
- }
- else // blad skladni, nie ma klamr
- sqr=sqrt(delta);
- x1=(-b-sqr)/(2*a);
- x2=(-b+sqr)/(2*a);
- printf("\n Parabola o miejscach zerowych: x1=%lf x2=%lf",x1,x2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement