www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 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++" - Initialsierung einer Matrix
Initialsierung einer Matrix < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Initialsierung einer Matrix: Hilfestellung
Status: (Frage) beantwortet Status 
Datum: 19:09 Di 13.01.2009
Autor: carl1990

Hallo,

ich möchte eine mxn Matrix erstellen und ihre Elemente mit beliebigen Werten belegen können.

Leider funktioniert die Initialisierung der Matrix mit beliebigen Werten bei mir nicht.

Hier der Programmcode:

//Ausgabe einer m x n Matrix
//m und n sollen innerhalb des Programmes beliebig gewählt werden

#include <stdio.h>
#include <stdlib.h>

int main()
{
int zeile, spalte, i, j;
int **matrix;

printf("Wieviel Zeilen soll die Matrix besitzen?");
scanf("%d", &zeile);
printf("Wieviel Spalten soll die Matrix besitzen?");
scanf("%d", &spalte);

matrix=(int **)malloc(zeile* sizeof(int *));//reserviert Speicher für die m(=zeile) Zeiger
if(NULL==matrix){
printf("Es ist nicht genuegend Speicher vorhanden!");
exit(0);
}

for(i=0; i<zeile; i++)
matrix[i]=(int *)malloc(spalte* sizeof(int));/*reserviert Speicher für die n(=spalte) Felder, auf welche jeweils die Zeiger der m Zeilenfelder zeigen.*/
if(NULL==matrix){
printf("Es ist nicht genuegend Speicher vorhanden!");
exit(0);
}

printf("Geben Sie nun bitte Werte fuer die Elemente der Matrix ein!");
for(i=0; i<zeile; i++)
for(j=0; j<spalte; j++){
printf("a[%d][%d]=",i,j);
scanf("2%d",&matrix[i][j]);//Werte für die jeweiligen Elemente der Matrix eingeben
}

for(i=0; i<zeile; i++)
for(j=0; j<spalte; j++)
if(j=0){
printf("|3%d ",matrix[i][j]);
}
if(j=(spalte-1)){
printf("3%d|",matrix[i][j]);
}
for(i=0;i<zeile;i++)
free(matrix[i]);

free(matrix);

return 0;
}


Würde mich freuen, wenn mir jemand bei dieser Sache helfen könnte.

Gruß Carl

        
Bezug
Initialsierung einer Matrix: Antwort
Status: (Antwort) fertig Status 
Datum: 19:39 Di 13.01.2009
Autor: rainerS

Hallo!

> Hallo,
>  
> ich möchte eine mxn Matrix erstellen und ihre Elemente mit
> beliebigen Werten belegen können.
>  
> Leider funktioniert die Initialisierung der Matrix mit
> beliebigen Werten bei mir nicht.
>  
> Hier der Programmcode:

Abgesehen davon, dass das zweite Auftreten von

  if(NULL==matrix){

eigentlich

  if(NULL==matrix[i]){

heißen muss, ist das erste Argument von scanf falsch:

  scanf("2%d",&matrix[i][j]);//Werte für die jeweiligen 

Das bedeutet, dass die Eingabe mit der Ziffer 2 anfangen muss. Willst du zweistellige Zahlen einlesen? Dann muss es "%2d" heißen.

  Viele Grüße
    Rainer


Bezug
                
Bezug
Initialsierung einer Matrix: Vielen Dank
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:15 Di 13.01.2009
Autor: carl1990

Vielen Dank fürs Anschauen und deine Korrekturen! Jetzt läuft das Programm wie gewollt :)

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


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]