Einzelnen Beitrag anzeigen
Ungelesen 06.12.13, 22:18   #3
Matze500
Student der Informatik
 
Registriert seit: Jul 2010
Ort: NRW nähe Münster ;)
Beiträge: 355
Bedankt: 261
Matze500 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
n wurde nicht initialisiert also dürfte das programm überhaupt nicht kompiliert werden.
natürllich wir kompiliert ist kein "Fehler" an sich jedoch kann irgendetwas in n stehen.



Die rot makierte stelle ist sehr wichtig in C da man Variablen initilisieren muss, sonst kann dort irgendetwas drin stehen und somit wird deine while schleife nicht einmal ausgeführt.
In deinem Fall könnte n z.B 3568422 sein sieht man vorallem gut wenn man in Eclipse /VS den Debugger benutzt. Und nur als Tipp der Debugger ist dein bester Freund beim Programmieren!!!

Die restlichen Farben sind Anmerkungen.

Code:
#include <stdio.h>
#include <stdlib.h> //entfernen

int primfaktor(int);

int main()
{
    int pf ;
    while ((pf = primfaktor(12))>1)
          printf("%d\n", pf) ;
    while((pf = primfaktor(7))>1)
              printf("%d\n", pf) ;
              printf( "%d\n", primfaktor(1));
  
  system("PAUSE");	//entfernen
  return 0;
}





int primfaktor (int wert)
{ 
     int n = 0; //wichtig sonst kann irgendetwas darin stehen in C!!!
     int zahl; // static braucht man eigentlich nicht
while (n<1)  //while Schleife bis jetzt auch noch unsinnig da du nichts mit n machst bring auch nur was bei arrays also int primfaktor(int *werte)
{
   zahl=wert;
}
 
 
  int erg, t, x;
  
  if (zahl<2)
  {
  return -2;
  }
  else
  {
       t=2;
       erg=zahl;

       while (zahl>t)
       {
             x=erg%t;
             while (x==0)
             {
                   erg=erg/t;
                   x=erg%t;     
                   return t;
                     
             }
             while (x>0)
             {
                   t=t+1; //kann man auch so schreiben t+=1; oder t++;(Inkrementation um 1)
                   x=erg%t;
                   if (t==zahl) 
                   {
                        x=0;
                   }
             }
       }
       
           
   }
  return -1;     //test falls Funktion mal durchläuft
           
}
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Powered by Windows 7
Matze500 ist offline   Mit Zitat antworten