1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Hab da ein Problem mit einem c-Script

    • Frage
  • Booster84
  • 24. Oktober 2003 um 08:21
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Booster84
    Punkte
    10
    Beiträge
    1
    • 24. Oktober 2003 um 08:21
    • #1

    Halo ihrz!
    ich hab mich die letzten paar Tage mit C befasst und bin da auf folgenden Code gestoßen

    Code
    #include <stdio.h>
    #define ANZAHL 24
    void main()
    {
    	short VerkehrsZaehlung[ANZAHL+1];
    	short *pt, index, summe;
    	VerkehrsZaehlung[ANZAHL]= -1;
    	printf("bitte %d Werte eingeben\n",ANZAHL );
    
    
    	for (index =0; index < ANZAHL; index++)
    		scanf("%d",&VerkehrsZaehlung[index]);
    
    
    	for (summe = 0, pt=&VerkehrsZaehlung[0]; *pt!=-1; pt++)
    		summe = summe + *pt;
    
    
    	printf("Summe: %d\n", summe);
    }
    Alles anzeigen


    Aber dummerweise gibt er mir da Zahlen aus die unmöglich sind und ich weiß nicht warum!!!
    Deshalb meine Frage: brauch ich ein neues hirn oder nen anderen Compiler???

  • Bug
    Punkte
    121
    Beiträge
    23
    • 24. Oktober 2003 um 09:20
    • #2

    Was sollten denn für Zahlen rauskommen?

    Vielleicht hast du ja einen Überlauf, da ein short nur einen Wertebereich von -32768 bis 32767 hat.

  • Irrlicht
    Punkte
    421
    Beiträge
    82
    • 24. Oktober 2003 um 09:53
    • #3

    doch nicht..

  • segfault
    Punkte
    583
    Beiträge
    113
    • 24. Oktober 2003 um 10:14
    • #4
    Zitat von Booster84
    Code
    VerkehrsZaehlung[ANZAHL]= -1;
    ...
    	for (summe = 0, pt=&VerkehrsZaehlung[0]; *pt!=-1; pt++)
    		summe = summe + *pt;
    ;
    }

    warum tust du das? wozu ueberhaupt einen pointer? warum VerkehrsZaehlung[ANZAHL] auf -1 ?
    find ich ziemlich sinnlos...

    mein vorschlag:

    Code
    #include <stdio.h>
    #define ANZAHL 4
    int main(void)
    {
            int Zaehlung[ANZAHL];
            int index, summe, x;
    
    
            printf("bitte %d Werte eingeben\n",ANZAHL);
    
    
            for (index=0; index<ANZAHL; index++) {
                    printf("zahl %d eingeben: ", index);
                    scanf("%d",&Zaehlung[index]);
            }
            summe = 0;
            for (x=0; x<ANZAHL ; x++)
                    summe = summe + Zaehlung[x];
    
    
            printf("Summe: %d\n", summe);
    }
    Alles anzeigen
  • johnny!
    Punkte
    150
    Beiträge
    24
    • 25. Oktober 2003 um 13:03
    • #5

    Also normal tät ich das auch anders machen. Aber wenns einfach nur um ein Beispiel zur Übung des Umgangs mit Pointern is, find ich es sehr originell. Gfallt ma.

    Ich würd mal das ganze debuggen, oder zumindest Statusmessages ausgeben.

    scanf scheint aufgrund von %d den nächsten short von VerkehrsZaehlung zu überschreiben. Daher wird dein "VerkehrsZaehlung[ANZAHL] = -1;" mit 0 überschrieben. Somit läuft die ganze Schleife willkürlich weiter bis irgendwann im Speicher ein -1 auftaucht. Und immer werden irgendwelche Speicherinhalte zur summe addiert, daher die komischen Werte.

    Ich würd entweder das scanf anders formulieren, oder du machst das array um noch 1 größer und hast halt ein ungenütztes Feld drin.

    [edit]
    Verwende einfach als Conversion Specifier in der scanf anstatt von %d einfach %hd (steht für short int oder unsigned short int), dann sollte es funktionieren.
    [/edit]

  • n00bian
    Punkte
    31
    Beiträge
    5
    • 27. Oktober 2003 um 00:00
    • #6

    C IST KEINE SCRIPT-SPRACHE - soviel zeit muss sein

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum