c++ Einmaleins mit Matrix erstellen

Hallo, auch Ich möchte mich kurz vorstellen: Ich studieren Fahrzeugtechnik im zweiten Semester und soll die gleiche Aufgabe bearbeiten. Ich wollte keinen neuen Thread erstellen, deswegen schreibe ich hier kurz rein, vielleicht kann mir ja jemand helfen.
Ich habe den Quelltext soweit schon fertig nur ist noch ein (hfftl.) kleiner Fehler darin. Mein Problem ist dass er mir die Summenzeile um genau eine Stelle im array verschiebt.
Sitze nun jetzt schon länger davor und wäre wirklich um jeden Tipp dankbar!
Hier mal mein Code:
C++:
#include <stdio.h>

int matrix [11][11];
int wertmax, z, s;
int sum;

int main (void)
{
	if (wertmax<11)
	{
		//Eingabe
		printf("Zur Berechnung der EInmaleinstabelle bitte beliebigen Wert zwischen 1 und 10 eingeben\n");
		scanf("%d", &wertmax);
		printf("Einmaleinstabele bis %d wird berechnet\n", wertmax);
		
		//werte berechnen
		sum=0;
		for (z=0; z<wertmax; z++)
		{
			sum=0;
		
			
			for (s=0; s<wertmax; s++)
			{
		
				matrix[z][s]= (z+1)*(s+1);
				sum += matrix [z][s];
				matrix [z][wertmax] = sum;
				matrix [wertmax][s] = sum;


			}
			
		
		}
		//Tabellen ausgeben
		
		for (z=0; z< wertmax+1; z++)
		{
			//Trennzeile vor der Summe
			if (z == wertmax)
				printf("---------------------------------------------------\n");
			for(s = 0; s< wertmax+1;s++)
			{
				//Trennezichen vor Summe
				if (s == wertmax)
					printf(" | ");
				printf("%4d", matrix[z][s]);
			}
	
		printf("\n");
		}
	}
	else
	{
		printf("Bitte Zahl kleiner-gleich 10 eingeben\n");
	}
		
	return 0;
}

Danke schon mal im Voraus!
Gruß
Wotho
 
Zuletzt bearbeitet von einem Moderator:
Hallo Wotho,

studierst du auch an der FH München?

zu deinem Problem, ich habe jetzt meine Zeilenwerte in einen Vektor gespeichert und diese dann wieder unterhalb der "---------" Linie wieder ausgegeben, die werte sind ja, egal für welche Zahl du die Tabelle erstellst, gleich.

Hoffe dass dir das etwas geholfen hat, ich hatte jetzt auch keine bessere Lösung

Viele grüße

Sascha


Ps. Jennesta, vielen Dank für die Info, jetzt funktioniert es endlich :D
 
Zuletzt bearbeitet:
Hallo,
Danke für deine schnelle Antwort!
Ja studiere auch an der FH in München.
Kannst du mir das evtl. anhand eines Codes zeigen wie du das mit dem Zeiger gemacht hast. (Wir haben in der Vorlesung noch keine Zeiger behandelt.)
Hat vielleicht ein anderer eine alternative Lösung?

Gruss
Wotho
 
Hallo,


is ja witzig ;)

sorry jetzt muss ich mich noch mal berichtigen, mit dem Vektor (eindimensionaler Array) kommt das gleiche raus wie bei dir,

ich habe jetzt einfach noch mal 2 verschachtelte for-schleifen genommen und dann meine Werte der Reihe nach ausgegeben.

hier mein kompletter Coder:

Code:
# include <stdio.h>

int tabelle [11][11];
int zahl;

int main (void)
{
	do
	{
		if (zahl < 0)
		{
			printf("Fehler!\n");
			printf("Geben Sie nur Zahlen im Intervall von 1 bis 10 ein!\n\n");
		}

		printf("Einmaleinstabelle\n");
		printf("Geben Sie eine Zahl zwischen 1 und 10 ein\n");
		scanf("%d", & zahl);
	}
	while ((zahl <= 0)||(zahl > 10)) ;
	printf("Einmaleinstabelle bis: %d\n", zahl);

	// Werte berechnen und in Tabelle speichern
	int i, j;
	for (i = 1; i <= zahl; i++)
	{
		for (j = 1; j <= zahl; j++)
		{
			tabelle[i][j] = i*j;
		}
	}


	//Tabelle Ausgeben
	int a, b, colsum = 0;
	for (a=1; a<=zahl; a++)
	{
		colsum = 0;
		for(b=1; b<=zahl; b++)
		{
			printf("%4d", tabelle[a][b]);
			colsum += tabelle[a][b];

		}

		printf("|");
		printf(" %d\n", colsum);

	}

	printf("------------------------------------------\n");

	// Spaltenwerte ausgeben, diese entsprechen den Zeilenwerten!
	int x, y, rowsum=0;
	for (x=1; x<=zahl; x++)
	{
		rowsum = 0;
		for(y=1; y<=zahl; y++)
		{
			rowsum += tabelle[x][y];
		}
		printf("%4d", rowsum);	
	}
	printf("\n");
	

	return 0;
}

Vielleicht ist die Idee mit dem Vektor besser, aber auf die Schnelle hab ich das jetzt nicht besser hin bekommen :(

Gruß Sascha
 
Okay Danke vielmals für deine Antwort! Werde mal schauen wie ich das löse, bei uns sollte es ja ein c-quelltext sein..
Dürft Ihr c++ dateien abgeben? bei welchen Professor bist du?

Gruss
Wotho
 
Moin,

sorry, aber könnt Ihr es dann nicht besser vor Ort klären?

Wen jetzt hier jeder was zu den einzelnen, unterschiedlichen Ansatz schreibt, gibt es doch nur Chaos resp. zumibndest Unübersichtlichkeit .....

Gruß
Klaus
 
Zurück