2016-12-31 3 views
0

Ich bin neu in C,Erstellen eines Arrays von Char in C

Also habe ich versucht, ein Programm zu machen Noten nach Noten von Studenten zuweisen. Ich brauche einen char-Array mit dem ersten Schlitz zum ersten Schüler mit Bezug zu machen .. etc

Die Initialisierung

char grade[n]; 

wobei n die Anzahl der Schüler

einfach war Wert I zuweisen eine Bedingung gemacht, die die Markierungen in einer Schleife vergleicht, und wenn die Bedingung erfüllt ist, wird diese Art von Anweisung ausgeführt:

grade[i] == 'B'; 

Um t anzurufen Der Wert am Ende habe ich verwendet:

printf("%c", &grade[i]); 

Wo "i" ist die Anzeige Schleife Variable.

Am Ende wurden seltsame Symbole angezeigt. Was ist der richtige Weg, um ein Array von Zeichen zu erstellen und einzelne "Slots" aufzurufen?

+4

'==' ist kein Zuweisungsoperator. –

+1

'& grade [i]' erhält die * Adresse * des Indexes 'i' im Array, was wahrscheinlich eine wirklich große, nutzlose Zahl ist. Verwenden Sie einfach 'grade [i]', um auf das Zeichen im Index 'i' des Arrays zuzugreifen. – Purag

+0

Mögliches Duplikat von [Zeiger in C: wann das kaufmännische Und-Zeichen und das Sternchen?] (Http://stackoverflow.com/questions/2094666/pointers-in-c-when-um-die-persions-and-and-) der Stern) – Purag

Antwort

4

Ändern Sie diese

printf("%c", &grade[i]); 

zu

printf("%c", grade[i]); 

Und es sollte funktionieren wie erwartet.

+0

@ user2217482 Kannst du dein ganzes Programm in die Frage einfügen? Wir können uns andere Probleme anschauen. – Sush

3

Sie drucken Zeigeradresse, verwenden Sie nicht & in Druck.

1

Verwenden Sie einfach printf ("% c", Grad [i]) ohne den Adressenoperator "&". Sie möchten das Zeichen am Index i drucken, nicht die Adresse dieses Zeichens.