matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

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
StartseiteMatheForenC/C++Array
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "C/C++" - Array
Array < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Array: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:27 Mo 06.09.2010
Autor: Ice-Man

Hallo,

ich habe mich hier nochmal an einem Array probiert.

Übung war irgendwie, das ich die Anzahl der verkauften Burger eingeben soll.
Das funktioniert ja soweit auch bei mir.
Problem an meiner Lösung ist nur, das ich nach der jeweiligen Eingabe des Burgers einer Filiale immer mit "Tab" zur nächsten Eingabe wechseln muss.
Und nachdem die Eingabe einer Filiale beendet ist, muss ich mit "Enter" zur nächsten springen.
Was ja irgendwie ein wenig verwirrend ist.

Gibt es da vielleicht einen einfacheren und logischen Weg?

Quelltext häng ich mal an, hoffe, ich habs ein wenig verständlich geschrieben.

Vielen Dank schon einmal.



Dateianhänge:
Anhang Nr. 1 (Typ: txt) [nicht öffentlich]
        
Bezug
Array: Antwort
Status: (Antwort) fertig Status 
Datum: 17:33 Mo 06.09.2010
Autor: Event_Horizon

Hallo!

Du hast es aber mit deinen Arrays ;-)

Zunächst deklarierst du oben tabelle[Filiale][4] , was aber so nicht geht. Filiale ist eine Variable und keine konstante. Ein Array kann man erstmal nur mit Konstanten anlegen.

Dann hast du dich auch später bei dem scanf vertan, hier steht tabelle[Filiale][4], womit du aber niemals alle deine Elemente füllst.


Das mit dem TAB verstehe ich nicht. So, wie es da steht, mußt du einen wert nach dem anderen eingeben, und dann ENTER drücken.
Dagegen wäre es  schon logisch und praktisch, wenn man alle Burger einer Filiale direkt hintereinander schreiben könnte, um danach  ENTER zu bestätigen und zur nächsten Filiale zu wechseln. Das ginge so:

scanf("%i %i %i %i", &tabelle[zeile][0], &tabelle[zeile][1], &tabelle[zeile][2], &tabelle[zeile][3]);

Hierbei werden vier durch Leerzeichen getrennte Zahlen gleichzeitig eingelesen.

Bezug
                
Bezug
Array: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:03 Mo 06.09.2010
Autor: Ice-Man

Also das mit dem "mehrere Zahlen hintereinander" einlesen funktioniert nicht so wirklich.

Und das mit dem "Tab" geht bei mir eigentlich.
Z.B.
Ich gebe 2 Filialen ein.
Dann lese ich 4 Zahlen ein, wobei ich nach jeder Zahl die Tabulator Taste drücke.
Wenn ich 4 Zahlen eingeben habe drücke ich "Enter" und es wird zur nächsten "Filiale" gesprungen.

Würde das wirklich nicht funktionieren??

Nur jetzt weis ich halt nicht, wie ich die Spaltensumme berechnen kann.

Bezug
                        
Bezug
Array: Antwort
Status: (Antwort) fertig Status 
Datum: 20:12 Mo 06.09.2010
Autor: Karl_Pech

Hallo Ice-Man,


Ich habe dir jetzt ein kleines Beispielprogramm zu deinem Problem geschrieben:


1: #include <stdio.h>
2: #include <stdlib.h>
3:
4: int main(int argc, char* argv[]) {
5: int x, y, maxx, maxy;
6:
7: int* pFilialen;
8:
9: printf("Anzahl Filialen: ");
10: scanf("%d", &maxy);
11:
12: printf("Anzahl Werte pro Filiale: ");
13: scanf("%d", &maxx);
14:
15: pFilialen = (int*)calloc(maxy*maxx, sizeof(int));
16: if(pFilialen == NULL) exit(1);
17:
18: for(y = 0; y < maxy; y++) {
19: printf("Filiale #%d:\n", y+1);
20: for(x = 0; x < maxx; x++) {
21: printf("\tWert #%d:", x+1);
22: scanf("%d", &pFilialen[y*maxx + x]);
23: }
24: }
25:
26: printf("\nSpaltensummen:\n");
27:
28: for(x = 0; x < maxx; x++) {
29: printf("#%d:", x+1);
30: int s; s = 0;
31:
32: for(y = 0; y < maxy; y++) {
33: s = s + pFilialen[y*maxx + x];
34: }
35:
36: printf("%d ", s);
37: }
38:
39: printf("\n");
40: free(pFilialen);
41:
42: return 0;
43: }


Das Programm reserviert mittels calloc() maxy*maxx Speicher für das zweidimensionale Filialen-Array. Der Trick ist, daß wir hier ein eindimensionales Array benutzen, um ein zweidimensionales Array darzustellen. Der Zugriff auf die Elemente erfolgt mittels y*maxx + x. Befinden wir uns in der 0ten Zeile, so gilt 0*maxx + x == x. Und für die 1te-Zeile überspringen wir sozusagen maxx Zellen (eine komplette Zeile) und landen direkt am Anfang der nächsten Zeile. Analog funktioniert es für y > 1.

Okay, soweit erstmal; Stelle konkrete Fragen zu diesem Programm, wenn dir etwas unklar ist.



Viele Grüße
Karl




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


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