C: Tabelle machen mit eingegeben Zahlen (Array)

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Jay12
Beiträge: 2
Registriert: Mi Nov 21, 2018 8:15 pm

C: Tabelle machen mit eingegeben Zahlen (Array)

Beitrag von Jay12 » Mi Nov 21, 2018 8:29 pm

Hallo,

bin ziemlich neu bei der C-Progammierung. Ich möchte gern eine Tabelle machen mit selbst eingegeben Zahlen (mit scanf) aber irgendwie bin ich ratlos :(
Alles soll in Array durch gehen aber ich schaffe den Anfang überhaupt nicht >.<

Das ist mein Anfang:

Code: Alles auswählen

int tabelle[2][7] = {
                      { {Produkt,1,2,3,4,5,6,7}
                         {Euro, %d,%d,%d,%d,%d,%d,%d} 
                    };
Wie man sieht möchte ich 2 Zeilen machen mit 7 Spalten. An Anfang soll man den Euro betrag eingeben werden und jetzt in der Tabelle sehen was man eingetippt hat... Aber ich weiß jetzt schon nicht wie ich das verbinden soll...(mit verbinden meine ich "%d gehört zu z.B: &eins")

help? :(

Edit by Xin: Codetags eingefügt

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C: Tabelle machen mit eingegeben Zahlen (Array)

Beitrag von cloidnerux » Mi Nov 21, 2018 9:37 pm

Hi und Willkommen im Forum,

grundsätzlich sollte dir bewusst sein, dass du nicht versuchst deinen Computer zu bitten, eine beliebig abstrakte Aufgabe selbstständig zu lösen. Daher funktioniert auch dein Ansatz nicht. Du sagst erst, dass du ein Array vom Typ "int" anlegen möchtest, dass aus 2 Zeilen und 7 Spalten bestehen soll

Code: Alles auswählen

int tabelle[2][7] = {
Dann möchtest du das ganze statisch initialisieren, aber Wahlweise mit einem zufälligen Wort oder String(?) und einigen Nummern.

Code: Alles auswählen

{Produkt,1,2,3,4,5,6,7}
Und in der letzten Zeile lässt du dann die Nummern weg und versuchst es mit komplett zufällligen Zeichenketten.
Der Compiler kann aber einer Variable vom Typ Ganzzahl(integer) keine Strings zuweisen("Text"). Auch die %d sind nur innherhalb eines scanf oder printf korrekt.

Um dein Problem anzugehen würde man folgendes machen:
Array Anlegen und mit Startwerten Initialisieren, wrsl 0.
Dann in einer Schleife die Werte eingeben lassen.
Dann alles Formatiert ausgeben.
Dann die Option bieten, Zeilen- und Spaltennummer einzugeben und anschließend einen neuen Wert für diese Zelle.

Dafür brauchst du ein paar Schleifen, ein paar printf's und scanf's
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Tabelle machen mit eingegeben Zahlen (Array)

Beitrag von Xin » Do Nov 22, 2018 9:51 am

Moin Jay,
Jay12 hat geschrieben:
Mi Nov 21, 2018 8:29 pm
bin ziemlich neu bei der C-Progammierung. Ich möchte gern eine Tabelle machen mit selbst eingegeben Zahlen (mit scanf) aber irgendwie bin ich ratlos :(
Bitte verstehe, dass es bei Computern keine Tabellen gibt. Es gibt hintereinander geschriebene Werte. Was Du bei Excel siehst ist optisch hübsch gemacht, damit Du es als Tabelle erkennst. In der Programmierung funktioniert das so nicht:
Jay12 hat geschrieben:
Mi Nov 21, 2018 8:29 pm

Code: Alles auswählen

int tabelle[2][7] = {
                      { {Produkt,1,2,3,4,5,6,7}
                         {Euro, %d,%d,%d,%d,%d,%d,%d} 
                    };
Du hast hier die Spalten benannt. Dein Array namens "tabelle" (es ist keine Tabelle!) besteht ausschließlich aus Werten. Produkt und Euro sind dem Compiler unbekannte Namen und auch nicht vom Typ int. Dazu ließ vielleicht mal den Abschnitt Ausdrücke im C-Tutorial.
%d kannst Du in printf und scanf verwenden und hat ansonsten in der Sprache C keine Bedeutung.

Code: Alles auswählen

int tabelle[2][7] = {
                      { {1,2,3,4,5,6,7}
                         {0,0,0,0,0,0,0} 
                    };
Jetzt kannst Du mit scanf Deine Werte füllen:

Code: Alles auswählen

scanf( "%d", &tabelle[1][i] );
wobei i von 0 bis einschließlich 6 läuft.

Mit scanf solltest Du besser allerdings nicht mehr programmieren lernen, bzw. schnellstmöglichst vergessen, dass Du es mal gesehen hast. Es gehört zu den Dingen in C, die Du nicht mehr verwenden solltest. Dein Dozent sollte seinen Unterricht entsprechend anpassen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Jay12
Beiträge: 2
Registriert: Mi Nov 21, 2018 8:15 pm

Re: C: Tabelle machen mit eingegeben Zahlen (Array)

Beitrag von Jay12 » Do Nov 22, 2018 9:41 pm

Hallo
Danke für euren Antworten. Ich kam echt gut weiter. Hier was ich gemacht hab:

Code: Alles auswählen

int Wertetabelle[2][6] = { 0 };

 	Wertetabelle[0][1] = printf("Produkt\n"); //Note
 	Wertetabelle[1][0] = printf("Euro\n");
	Wertetabelle[0][1] = 1; //Erste Produkt
	Wertetabelle[0][2] = 2; //zweite Produkt
	Wertetabelle[0][3] = 3; //Dritte Produkt
	Wertetabelle[0][4] = 4; //vierte Produkt
	Wertetabelle[0][5] = 5; //fuenftes Produkt
	Wertetabelle[0][6] = printf("Gesamtvertrag");
am Anfang hab ich mit scanf den wert abgefragt:

Code: Alles auswählen

scanf("%d", &Wertetabelle[j][0]);
Mein Ausgabe ist mit Zahlen ist perfekt aber irgendwie bei printf stellt er das nicht in den Zellen rein sondern ganz davor. Ich denke weil das nicht mehr als Array zulässig ist(?)

aufjedenfall danke, kam echt weiter :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: Tabelle machen mit eingegeben Zahlen (Array)

Beitrag von Xin » Do Nov 22, 2018 10:02 pm

Das ist ein wenig komplizierter. ^^

int heißt Integer. Integer heißt zählbar, also 1, 2, 3, 4... Ein Text ist aber etwas anderes. Du kannst in Deiner Tabelle keine Texte speichern, weil es eine Tabelle von ints ist.

Schau Dir mal die Definition von printf an: printf gibt ein int zurück in dem die Länge des ausgegebenen Strings steht. Diesen Wert speicherst Du in Dein Array. Du gibst also den String aus und speicherst dann seine Länge im Array. Also "Produkt\n" sind 8 Zeichen, das landet in Deinem Array.

Da Du die Tabelle vermutlich danach ausgibst, hat er zuvor "Produkt" usw. ausgegeben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten