nabend,
ich bin Student der Elektrotechnik und bin daher dabei C zu erlernen.
Unser Dozent orientiert sich dabei an einem Skript.
Momentan behandeln wir Felder und Zeiger.
Im Skript sind immer wieder Beispielprogramme, unter anderem das folgende, mit dem ich und ein Kommilitone ein Problem haben.
Alles anzeigen
Das Programm soll eine 2 dimensionale Matrix ausgeben und dann den Benutzer auffordern einen neuen Wert für eine Wert in der Matrix anzugeben.
Zuerst haben wir das Programm 1 zu 1 abgeschrieben, dann meckerte der gcc schon rum. Es ergaben sich 16 Fehler....naja nun ist es nur noch einer.
Aber dieser eine lässt uns zwei anfängern die Köpfe rauchen.
Der Compiler gcc sagt folgendes:
Ich wäre über Anregungen bzw. Lösungen sehr erfreut.
PS: Zeile 7 aus dem Zitat des Compilers stimmt mit Zeile 7 oben im Programm überein
gruß
para
ich bin Student der Elektrotechnik und bin daher dabei C zu erlernen.
Unser Dozent orientiert sich dabei an einem Skript.
Momentan behandeln wir Felder und Zeiger.
Im Skript sind immer wieder Beispielprogramme, unter anderem das folgende, mit dem ich und ein Kommilitone ein Problem haben.
Quellcode
- #include <stdio.h>
- #define dim1 = 3
- #define dim2 = 4
- void f_m (short feld [dim1][dim2], short, short, short); /*Prototyp*/
- int main (void) /* Hauptprogramm */
- {
- {
- short i, j, z, s, ok, wert=0;
- short feld [dim1] [dim2] /* 2-dimensionale Feldinitialisierung */
- {
- {10, 20, 30, 40}
- {100, 200, 300, 400}
- {1000, 2000, 3000, 4000}
- };
- do
- {
- printf ("\n\n feld [%2hd] [%2hd]:",dim1, dim2);
- for (j = 0; j < dim1; j++) /* Ausgabe der dim2 Elemente einer Zeile */
- {
- printf ("\n");
- for (i=0 ; i<dim2 ; i++)
- printf ("%4hd", feld [j][i]);
- }
- printf ("\n\n An welcher Stelle [z] [s] soll feld mit \'wert\' ueberschrieben werden?\n z s wert: ?\n");
- fflush (stdin); /* Tastaturpuffer loeschen */
- ok = scanf ("%hd %hd %hd", &z, &s, &wert);
- f_m (feld, z, s, wert); /* Funktionsaufruf, feld [z] [s] enthaelt nun wert */
- printf ("\n\n geaendert: feld [z = %2hd][s = %2hd] = %hd",z, s, wert);
- for (j=0; j<dim1; j++) /* Ausgabe aller dim1 Zeilen */
- {
- printf ("\n");
- for (i=0; i<dim2; i++) printf ("%4hd", feld [j] [i]);
- /* Ausgabe der DIM2 Elemente einer Zeile */
- }
- } while (ok == 3);
- return 0;
- }
- void f_m ( short donald_duck [] [dim2], short goofey, short daisy, short mickey );
- { donald_duck [goofey][daisy]=mickey; } /* Feldplatz donald_duck [goofey][daisy] wird mit mickey ueberschrieben*/
- }
Das Programm soll eine 2 dimensionale Matrix ausgeben und dann den Benutzer auffordern einen neuen Wert für eine Wert in der Matrix anzugeben.
Zuerst haben wir das Programm 1 zu 1 abgeschrieben, dann meckerte der gcc schon rum. Es ergaben sich 16 Fehler....naja nun ist es nur noch einer.
Aber dieser eine lässt uns zwei anfängern die Köpfe rauchen.
Der Compiler gcc sagt folgendes:
skript_transf.c:7: error: expected expression before ‘=’ token
Ich wäre über Anregungen bzw. Lösungen sehr erfreut.
PS: Zeile 7 aus dem Zitat des Compilers stimmt mit Zeile 7 oben im Programm überein
gruß
para