Skalarmultiplikation < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 09:45 Mo 21.03.2011 | Autor: | Benja91 |
Ich habe diese Frage in keinem anderen Forum gestellt:
Hallo,
ich wollte zur Übung ein Programm schreiben, dass eine Matrix einliest und dann entweder eine Matrixmultiplikation durchführt oder eine Skalarmultiplikation macht (ersteres ist noch nicht implementiert). Ich habe bereits Probleme mit der Skalarmultiplikation. Mir ist nicht klar, warum sie nicht funktioniert. Es muss etwas mit der Übergabe von array an die Funktion Skalarmultiplikation zu tun haben. Anbei mein Code und die Ausgabe meines Compilers.
Vielen Dank für eure Hilfe :)
LG
Benja
#include <stdio.h>
#define SPALTEN 3
#define ZEILEN 3
void Skalarmultiplikation(int feld[][], int multipliziere)
{
int x,y;
int ergmatrix[ZEILEN][SPALTEN];
for (x=0; x<ZEILEN; x++) {
for (y=0; y<SPALTEN; y++) {
ergmatrix[x][y]=multipliziere*feld[x][y];
}
}
/*Nun sollen die Werte der Skalarmultiplikation wieder ausgegeben werden */
printf("Das Ergebnis der Skalarmultiplikation [mm] lautet:\n");
[/mm]
for (x=0; x<ZEILEN; x++) {
for (y=0; y<SPALTEN; y++) {
[mm] printf("\t%4d",ergmatrix[x][y]);
[/mm]
}
[mm] printf("\n");
[/mm]
}
}
int main ()
{
int i,j;
int array[ZEILEN][SPALTEN];
/* Nun sollen die Arraywerte eingelesen werden*/
for (i=0; i<ZEILEN; i++) {
for (j=0; j<SPALTEN; j++) {
printf("Bitte geben sie den Wert für das Feld [%d][%d] [mm] ein:\n",i,j);
[/mm]
scanf("%d",&array[i][j]);
}
}
/* Nun soll die Matrix wieder ausgegeben werden */
printf("Zur Überprüfung ihrer Eingabe wird die Matrix nun nochmals [mm] ausgegeben.\n");
[/mm]
for (i=0; i<ZEILEN; i++) {
for (j=0;j<SPALTEN; j++) {
[mm] printf("\t%4d [/mm] ",array[i][j]);
}
[mm] printf("\n");
[/mm]
}
/* Nun soll eine Skalarmultiplikation durchgeführt werden */
int zahl;
int skalar;
printf("Bitte geben Sie eine 1 ein, wenn eine Skalarmultiplikation durchgeführt werden [mm] soll:\n");
[/mm]
scanf("%d",&zahl);
if (zahl==1)
{
printf("Bitte geben Sie den Skalar an, mit welchem Ihre Matrix multipliziert werden [mm] soll:\n");
[/mm]
scanf("%d",&skalar);
Skalarmultiplikation(array[ZEILEN][SPALTEN],skalar);
}
else
{
printf("Gut, dann eben nicht ;)");
}
return 0;
}
Compilerausgabe:
main.c:5: error: array type has incomplete element type
main.c: In function ‘main’:
main.c:67: error: type of formal parameter 1 is incomplete
Ich habe gerade gesehen, dass meine printf Anweisungen nicht angezeigt werden. Ich habe gerade mit dem debugger nachgeschaut und beide Anweisungen funktionieren. Hier kann also der Fehler nicht liegen :)
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:53 Mo 21.03.2011 | Autor: | Benja91 |
Hallo,
die Frage brauch niemand mehr zu beantworten. ICh habe den Fehler selber gefunden. Mir war vorher nicht klar, dass man die zweite Dimension des Arrays angeben muss :)
Gruss
Benja
|
|
|
|