Skocz do zawartości
adi_em

Problem W C (if Else...)

Rekomendowane odpowiedzi

Witam! mam pewien problem.

Mam do napisania program liczący f. kwadratową.

Ma być prosto samymi if else...

 

Napisałem tak i wywala jeden błąd...

 

//Dev-C++  4.9.9.2#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>int main()														{	double a,b,c;double delta,x,x1,x2;double eZero;  printf("Program obliczajacy rownania postaci Ax2BxC;)\n\n");printf("Podaj wspolczynnik a: "); scanf("%f",&a);printf("Podaj wspolczynnik b: "); scanf("%f",&b);printf("Podaj wspolczynnik c: "); scanf("%f",&c);printf("Zakres eZero - zero maszynowe, (postaci 1E^x) gdzie x jest potega:"); scanf("%f", &eZero);//Wczytanie wspolczynnikow a,b,c oraz zakresu(zera maszynowego)if (a==0)      {if (b==0)			{if (c!=0)			printf("a=0 --> jest to funkcja liniowa\n\n b=0 i c jest rozne od 0 --> rownanie sprzeczne\n\n");			}			else						{printf("Rownanie liniowe tozsamosciowe. Posiada ono nieskonczenie wiele rozwiazan\n\n");			}	      }			      else 		{ x=(-c/b);		 printf("Rownanie liniowe oznaczone z jednym rozwiazaniem:\n\n x=%f\n\n",x);  		 }		else   {	printf("a=0 --> jest to funkcja kwadratowa");	delta=b*b-4*a*c;   	if (delta==0)											// Delta = 0				{x1=-b/(2*a);				printf("delta=0\n\n");				printf("Rownanie posiada jeden pierwiastek podwojny: x= %f\n\n",x1);				}	else				[b]<---------- -tutaj!!  [/b]  expected primary-expression before"else"		 		 if (delta>0)									   //Delta > 0				  {				   x1=(-b+sqrt(delta))/(2*a);				   x2=(-b-sqrt(delta))/(2*a);				   				   printf("delta= %f", delta);				   printf("Rownanie posiada 2 pierwiastki rzeczywiste:\nx1=%f\nx2=%f\n\n",x1,x2);				   }				  		  else											// Delta < 0 (pierwiastki zespolone)												  			  {printf("Delta mniejsza od zera --> pierwiastki zespolone : %f  + (%f)i\n\n",((-b)/(2*a)),(sqrt(fabs(delta)))/(2*a));			  printf("Delta mniejsza od zera --> pierwwiastki zespolone : %f  - (%f)i\n\n",((-b)/(2*a)),(sqrt(fabs(delta)))/(2*a));   			  			  gechar();			  }}			  return 0;}

Co moze byc nie tak?

Z góry dzięki!!!

Edytowane przez adi_em

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

kurde... Kiedy wy się wreszcie nauczycie że błąd jest po to żeby go PRZECZYTAĆ i wiedzieć o co chodzi..

 

Przy drugim ifie nie masz nawiasów dla if()

 

ps. jak już robisz wcięcia to rób to tak aby spełniały swoje zadanie

 

if (delta==0)											// Delta = 0  {		x1=-b/(2*a);		printf("delta=0\n\n");		printf("Rownanie posiada jeden pierwiastek podwojny: x= %f\n\n",x1);  }
Edytowane przez PelzaK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"Przeczytałem błąd" ale duzo mi to nie powiedziało.

Już zauważyłem to miejsce z nawiasami zanim napisałeś, poprawiłem, nic to nie zmieniło, ale i tak dzięki!

:)

Edytowane przez adi_em

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PelzaK Ci wszystko napisał. Czytaj błędy ! A po pierwsze jak już decydujesz się na pisanie nawiasów klamrowych to pisz je poprawnie, a nie niechlujnie.

 

#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>int main()														{	double a,b,c;double delta,x,x1,x2;double eZero;  printf("Program obliczajacy rownania postaci Ax2BxC;)\n\n");printf("Podaj wspolczynnik a: "); scanf("%f",&a);printf("Podaj wspolczynnik b: "); scanf("%f",&b);printf("Podaj wspolczynnik c: "); scanf("%f",&c);printf("Zakres eZero - zero maszynowe, (postaci 1E^x) gdzie x jest potega:"); scanf("%f", &eZero);//Wczytanie wspolczynnikow a,b,c oraz zakresu(zera maszynowego)if (a==0){   if (b==0)   {			if (c!=0)			{				printf("a=0 --> jest to funkcja liniowa\n\n b=0 i c jest rozne od 0 --> rownanie sprzeczne\n\n");			}			else			{				printf("Rownanie liniowe tozsamosciowe. Posiada ono nieskonczenie wiele rozwiazan\n\n");			}	     }			     else   { 	   x=(-c/b);	   printf("Rownanie liniowe oznaczone z jednym rozwiazaniem:\n\n x=%f\n\n",x);     }}		else{	printf("a=0 --> jest to funkcja kwadratowa");	delta=b*b-4*a*c;	if (delta==0)											// Delta = 0	{	 x1=-b/(2*a);	 printf("delta=0\n\n");	 printf("Rownanie posiada jeden pierwiastek podwojny: x= %f\n\n",x1);	}	else	{		 if (delta>0)									   //Delta > 0	 {	  x1=(-b+sqrt(delta))/(2*a);	  x2=(-b-sqrt(delta))/(2*a);				  	  printf("delta= %f", delta);	  printf("Rownanie posiada 2 pierwiastki rzeczywiste:\nx1=%f\nx2=%f\n\n",x1,x2);	 }				  	 else											// Delta < 0 (pierwiastki zespolone)												  	 {	  printf("Delta mniejsza od zera --> pierwiastki zespolone : %f  + (%f)i\n\n",((-b)/(2*a)),(sqrt(fabs(delta)))/(2*a));	  printf("Delta mniejsza od zera --> pierwwiastki zespolone : %f  - (%f)i\n\n",((-b)/(2*a)),(sqrt(fabs(delta)))/(2*a));  			  	  getchar();	 }	}}			  return 0;}

Pozdrawiam.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...