Thema: c noob frage
Einzelnen Beitrag anzeigen
Alt 27.11.2003, 23:26   #2
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Code:
#include <stdio.h>
#include <conio.h>
#include <math.h>
float unterwurzfkt(float vara,float varb,float varc,float unterwurz);
float komplexeloesungen(float vara,float varb,float varc,float erg2);
float reelleloesungen(float vara,float varb,float varc,float ergreteil,float unterwurz);

void quadratische1 ( void );

int main ()
{
   float quadratische;
	int auswahl;
   printf("Bitte treffen sie ihre Auswahl: \n\n");
   printf("1) Quadratische Gleichung loesen\n");
   printf("2) Mittelwert berechnen\n");
   printf("3) Requesion\n");
   printf("Auswahl: ");
   scanf("%d",&auswahl);
   /*void clrscr(void);*/
   switch(auswahl)
     {
       case 1:
          quadratische1();
          break;
       case 2:
   		 printf("\nMittelwertberechnung: ");
        break;
       case 3:
   		 printf("\nRegession: ");
   		 break;
     default:
   	 {
   	   printf("Falsche Auswahl!!");
   	   break;
       }
     }
   getch();

 return 0;
}

void quadratische1 ( void )
{
   float vara,varb,varc,erg1,erg2,unterwurz,ergreteil;
   do
   {
     printf("a: ");
     scanf("%f",&vara);
     if (vara==0)
     {
       	printf("   a darf nicht 0 sein! Da es sonst keine Quadratische Gleichung ist\n");
     }
   }
   while (vara==0);
   printf("b: ");
   scanf("%f",&varb);
   printf("c: ");
   scanf("%f",&varc);
   erg1=((-varb)/(2*vara));
   unterwurz=unterwurzfkt(vara,varb,varc,unterwurz);
   if (unterwurz<0)
   {
      erg2=komplexeloesungen(vara,varb,varc,erg2);
      printf("\nErgebnis 1: %5.3f",erg1);
      printf(" +");
      printf("%5.3fj",erg2);
      printf("\nErgebnis 2: %5.3f",erg1);
      printf(" -");
      printf("%5.3fj",erg2);
      printf("\nDiese Gleichung hat 2 komplexe Loesungen!!");
   }
   else
   {
      if (unterwurz==0)
      {
      	printf("\nErgebnis: %5.3f",erg1);
         printf("\nDiese Gleichung hat nur 1 reelle Loesung!!");
      }
      else
      {
      	ergreteil=reelleloesungen(vara,varb,varc,ergreteil,unterwurz);
      	erg1=(-varb/2*vara)+ergreteil;
      	erg2=(-varb/2*vara)-ergreteil;
      	printf("\nErgebnis 1: %5.3f",erg1);
      	printf("\nErgebnis 2: %5.3f",erg2);
      }
   }


 }

float unterwurzfkt(float vara,float varb,float varc,float unterwurz)
{
   unterwurz=((varb*varb)-(4*vara*varc));
   return(unterwurz);
}
float komplexeloesungen(float vara,float varb,float varc,float erg2)
{
	erg2=sqrt((-1)*((varb*varb)-(4*vara*varc)));
   return(erg2);
}
float reelleloesungen(float vara,float varb,float varc,float ergreteil,float unterwurz)
{
	ergreteil=sqrt(unterwurz)/(2*vara);
   return(ergreteil);
}
Entferne die geschweiften Klammern in den case Blöcken der switch Anweisung und füge am Ende ein break; ein, falls dieser Befehl nicht vorhanden ist.

Taufe die Funktion bzw. Prozedur quadratische um, in Dev-C++ schreibt er raus, daß quadratische keine Funktion ist, mit dem Name quadratische1 gelingt die Kompilierung des obigen Programmcodes.

mfg Kikakater
kikakater ist offline   Mit Zitat antworten