Pierwiastek w funkcji kwadratowej w języku C

0

Generalnie pisze sobie funkcje kwadratową i mam problem z pierwiastkiem w języku C. Tutaj kod:

#include<stdio.h>
#include<math.h>
int main()
{	
	int a;
	int b;
	int c;
	printf("Podaj liczbę a\n");
	scanf("%d", &a);
	if(a>0)
	{
		if(a<0)
		{
			printf("Nie ma rozwiązań");
		}
		if(a>0)
		{
			int delta = b*b-4*a*c;
			int x1 = (-b-sqrt(delta))/2*a;
			int x2 = (-b+sqrt(delta))/2*a;
			printf("Funkcja ma dwa rozwiązania:%d\n", x1);
			printf("Funkcja ma dwa rozwiązania:%d\n", x2);
		}
		if(a==0)
		{
			int p = (-b)/2*a;
			printf("Funkcja ma 1 rozwiązanie:%d\n", p);
		}
	}
}

A tutaj błąd

Zrzut ekranu z 2021-10-20 21-44-37.png

0

pewnie masz źle skonfigurowany kompilator i nie widzi bibliotek.

3

Musisz dodać bibliotekę m do gcc by móc używać math.h:

gcc -lm -o program1 program.c
3
    if(a>0)
    {
        if(a<0)
        {}
        if(a==0)
        {}
   }

Xd

0

Zrzut ekranu z 2021-10-20 22-05-53.png

1

Wpisujesz co innego przeciez. Kolejnosc zla.

0

Zrzut ekranu z 2021-10-20 22-07-34.png

0

Zrzut ekranu z 2021-10-20 22-14-13.png

0

Zrzut ekranu z 2021-10-20 22-20-55.pngZrzut ekranu z 2021-10-20 22-21-07.png

0

Dobra uruchomiłem tylko że teraz dostaje coś takiegoZrzut ekranu z 2021-10-20 22-31-46.png

0

A to, ze Twoj program ma skopana logike to juz wczesniej Ci pokazalem :P

0

@piotrek1998:

if(a>0)
    {
        if(a<0)
        {
            printf("Nie ma rozwiązań");
        }
        if(a>0)
        {
            int delta = b*b-4*a*c;
            int x1 = (-b-sqrt(delta))/2*a;
            int x2 = (-b+sqrt(delta))/2*a;
            printf("Funkcja ma dwa rozwiązania:%d\n", x1);
            printf("Funkcja ma dwa rozwiązania:%d\n", x2);
        }
        if(a==0)
        {
            int p = (-b)/2*a;
            printf("Funkcja ma 1 rozwiązanie:%d\n", p);
        }
    }

Tu się wykona tylko a>0 albo nic, popraw to.

0

A ja napisałem że dopiero zaczynam

0

Zrzut ekranu z 2021-10-20 22-39-44.png

0

@piotrek1998:

Używasz zmiennych "b" i "c" ale nigdzie ich nie wczytujesz z inputu.

0

Zrzut ekranu z 2021-10-20 22-45-53.png. Czy teraz jest ok? Wyświetlają się różne komunikaty zależnie od liczb jakie wprowadzi użytkownik ale być może trzeba coś jeszcze poprawić.

0

@piotrek1998: A co jak rozwiązanie nie będzie liczbą całkowitą?

2

@piotrek1998: int delta? Delta musi być, double, (generalnie, wszytko tu musi być, double - do porawki); pozostaje problem z porównaniem do zera, if (delta == 0):
https://stackoverflow.com/questions/19837576/comparing-floating-point-number-to-zero

1

/ (2*a)

1 użytkowników online, w tym zalogowanych: 0, gości: 1