www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "C/C++" - matrix drucken
matrix drucken < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

matrix drucken: korrektur
Status: (Frage) beantwortet Status 
Datum: 13:45 Sa 30.01.2010
Autor: nana

Hallo! Ich hatte als Aufgabe eine Matrix zu drucken und zu transponieren, hier geht es aber eigentlich nur um den Druck!
An sich wird alles kompiliert und ich finde auch keinen Fehler (ich hab nur die Methode print implementiert, alles andere war shcon vorgegeben), die Methode ist auch wirklich einfach aber seltsamerweise ist das Ergebnis eine vollkommen andere Matrix als in der main-funktion angegeben...
und zwar
1,1,1,1,1,
1,1,1,2,3,
1,1,3,0,1,
und ich weiß nicht wie auch immer das Programm darauf gekommen ist....ich hoffe ihr findet den Fehler!!
Danke!!!


#include <iostream>
using namespace std;


void print(int matrix[], int m, int n)
{
for (int i=0; i<m; i++)
{
for (int j=0; j<n;j++)
{
cout<< matrix [i*j]<< ",";
}
cout<< endl;
}
}


int main(void)
{
const int m=3;
const int n=5;
int matrix[m*n] =
{
1,1,1,2,3,
0,0,1,1,2,
0,0,0,0,1
};
print(matrix, m, n);
return 0;
}

        
Bezug
matrix drucken: Antwort
Status: (Antwort) fertig Status 
Datum: 14:35 Sa 30.01.2010
Autor: Karl_Pech

Hallo nana,


1: > void print(int matrix[], int m, int n) 
2: > {
3: >  for (int i=0; i<m; i++)
4: >   {
5: >   for (int j=0; j<n;j++)
6: >   {
7: >   cout<< matrix [i*j]<< ",";


Solange die innere j-Schleife ausgeführt wird, ist i auf einen Wert zwischen 0 und m-1 gesetzt. Was passiert denn z.B., wenn i = 0 ist? Dann gilt für beliebige j: 0*j=0. D.h. du greifst ständig auf das gleiche 0-te Element des eindimensionalen Arrays matrix zu. Leider habe ich im Moment keine Möglichkeit es zu testen, aber versuch' es mal mit i*n + j statt i*j. Ich denke, dann sollte es klappen, denn jede Zeile hat die Breite n. Du springst damit immer zum Anfang der i-ten Zeile und gehst dann noch j Schritte weiter in der Horizontalen.



Viele Grüße
Karl




Bezug
                
Bezug
matrix drucken: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:20 Sa 30.01.2010
Autor: nana

Hey, es ist mir inzwischen auch selbst aufgefallen, hab matrix [a*b] tdm wie eine matrix [a][b] behandelt...doof von mir!!!
Vielen Dank für die schnelle Antwort!
lg, nana

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]