Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Code::Blocks stürzt beim Ausführen des Programms ab...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.11.2011, 15:03 Uhr
F-Tron



Hallo an alle programmier-Fans;

Vorab möchte ich sagen dass ich ein absoluter Neuling bin, habt deswegen ein bisschen Geduld mit mir

Ich habe ein Programm geschrieben welches die Primzahlen eines Arrays ausgibt. Das Problem ist, dass der Compiler sofort abstürzt!
Hier ist der Code:


C++:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[10000],b=0,j,c,i,h1;
    printf("Jetzt wird gerechnet!!");
    printf("Anzahl Primzahlen: ");
    fflush(stdin);
    scanf("%d",&h1);

    for(i=0;i<h1;i++)
    {
        b++;
        a[i]=b;
    }
    for(i=0;i<h1;i++)
    {
        if(a[i]>1)
        {

            for(j=i;j<h1;j++)
            {
                if(a[j]>0)
                {
                    c=a[j]%a[i];
                    if(c==0)
                    {
                        a[j]=0;
                    }
                }
            }
        }
    }
    for(i=0;i<h1;i++)
    {
        if(a[i]>0)
        {
            printf("%d",&a[i]);
        }
    }


    return 0;
}


Ich hoffe ihr könnt mir helfen...
Liebe Grüße;
F-Tron.


Bearbeitung von 0xdeadbeef:

cpp-Tags eingefügt. Nächstes mal selbst machen.


Dieser Post wurde am 27.11.2011 um 16:19 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.11.2011, 16:25 Uhr
0xdeadbeef
Gott
(Operator)


Zunächst:

C++:
    fflush(stdin);


ist vom Standard nicht gedeckt. fflush funktioniert nur auf Ausgabeströmen - du kannst ein Klo spülen, aber keinen Wasserhahn.

Ansonsten stürzt dein Programm mit SIGFPE ab; in diesem Fall wird das durch eine Integer-Division durch Null ausgelöst, und zwar hier:

C++:
           for(j=i;j<h1;j++)
            {
                if(a[j]>0)
                {
                    c=a[j]%a[i];
                    if(c==0)
                    {
                        a[j]=0;
                    }
                }
            }


Gleich im ersten Durchlauf der Schleife ist i == j, dementsprechend ist a[i] == a[j] und a[j] % a[i] == 0. Dann wird a[j] = 0 gesetzt, und da im Moment i == j ist, wird damit a[i] = 0, und im nächsten Schleifendurchlauf teilst du durch Null.

Die gesamte IDE sollte davon aber eigentlich nicht abstürzen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.11.2011, 17:58 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:

du kannst ein Klo spülen, aber keinen Wasserhahn.


HAHAHAHAHAHA - ich schmeiß mich weg - so geiler vergleich *ggggg* (oh man - rofl hat das jetzt echt getroffen )

ansonsten - fflush(stdin) wird vom visual studio compiler tatsächlich als "leeren des eingabepuffers" definiert - ist aber eben visual studio spezifisch.

(Ja bei MS funktioniert auch das Spülen eines Wasserhahns )
--
class God : public ChuckNorris { };

Dieser Post wurde am 27.11.2011 um 17:59 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.11.2011, 21:38 Uhr
F-Tron



oke, danke, ich werde es gleich weider versuchen
ps: geiler spruch vorhin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: