PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Arrays (Abbruchbedingung)


UpMerge
2008-08-19, 19:32:41
Hallo!

Hab dieses Beispiel aus meinem Buch abgeschrieben aber es bringt mir das falsche Ergebnis.

Wenn man einem Array, vom Datentyp short (short Fled4[16]),einen Wert an einer bestimmten Stelle zuweisen möchte, kann man das so machen-->short Feld4[16]={[16]=-1};-->was man aber direkt bei der deklaration machen müsste. Oder?
Das hab ich auch in meinem Programm versucht und den untern Teil gelöscht, hat aber auch nicht funktioniert.


Will man bei dem Array später die letzte Stelle initialiesieren, muss man das so machen -->Feld4[16]=-1; Richtig?

Gebe ich bei diesem Programm an jeder stelle eine 1 ein, sollte die Zahl 24 rauskommen.
Da kommt aber 24123 oder so raus.

Vielen Dank schon mal!!!:)





#include <stdio.h>
#include <stdlib.h>
#define ANZAHL 24


int main()
{
short Verkehrszaehlung[ANZAHL+1];
short index,summe,*pt;

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);



system("pause");
}



EDIT: Ist da ein Fehler in meinem Buch?

Xmas
2008-08-19, 19:49:47
Für short musst du bei scanf/printf "%hi" verwenden.

UpMerge
2008-08-19, 20:03:07
Steht zwar nicht so in meinem Buch aber es funktioniert.
Danke Dir!


EDIT:Für was kann ich "%hi" alles verwenden?

Coda
2008-08-19, 20:08:59
Für signed short.

godess
2008-08-19, 20:18:52
Liegt vielleicht daran, dass Fled4[16] außerhalb von Fled4 ist. Wenn du ein Array mit 16 Werten initialisierst, dann gehts nur bis 15, weil die 0 auch mitzählt. Also Fled4[0]...Fled4[15].

€dit: Ich seh grad im Buch war es richtig initialisiert (ANZAHL+1). Nächste mal les ich alles, versprochen ;)

UpMerge
2008-08-19, 20:23:01
@Coda: Wo kann ich eine komplette Liste der Formatstrings finden?
@godess: Es sind eigentlich 17 wenn man die Null dazu rechnet! Glaub ich zumindest. :)
EDIT: Nein sind doch nur 15, hast Recht gehabt!
@godess: OK :)

UpMerge
2008-08-19, 20:25:33
Edit: Hab eine liste gefunden!

lol