Arrays
-
aber mal ne andere frage: wie kann ichn da jetz ne schleife einbauen, dir er so oft wiederholt, bis das ganze array voll ist, ohne jnoch eine andere variable zu deklarieren in der der maximalwehrt des arrays steht?
-
also fals das geht, bitte sagen!!
ansonsten hab ich es jetz damit versucht:#include <stdio.h> #include <stdlib.h> main() { int Matrix[3][3]; int i, I; for (I=0;I==2;I++) { { for (i=0;i==2;i++); scanf("%d", &Matrix[I][i]); } } system("PAUSE"); return 0; }
geht aber nicht
da kommt sofort das mit der pause..
-
Wie wärs mit i<3 ?
-
darf man den == operator nicht benutzen inner for-schleife?
-
Es geht um die Logik, und die ist falsch. Der Inhalt der Schleife wird so lange wiederholt, wie der 2. Ausdruck (in deinem Fall i==2) wahr ist. Da i mit 0 initialisiert wird, trifft das niemals zu, und die Schleife wird eben auch niemals durchlaufen. Hier nochmal ein Link dazu:
http://www.mathematik.uni-marburg.de/~cpp/schleifen_strukturen/for_1.html
-
achsooo^^
thx!!!
-
hmm. ich hab das jetz gemacht, aber der liest nur 3 zahlen ein und nicht neun wie gewünscht...
-
#include <stdio.h> int main(){ int i,k,Matrix[3][3]; for(i=0;i<3;i++){ for(k=0;k<3;k++){ scanf("%d",&matrix[i][k]); }}
-
Noch ne kleine Verbesserung
ciro schrieb:
#include <stdio.h> #define MAXX 3 #define MAXY 3 int main(){ int i,k,Matrix[MAXX][MAXY]; for(i=0;i<MAXX;i++){ for(k=0;k<MAXY;k++){ scanf("%d",&matrix[i][k]); }}
Somit brauchst bei Änderungen nur an einer Stelle etwas ändern. Anstatt #define kannst du auch mit const arbeiten.
-
AJ
**[...]const arbeiten
const variablen sind in dem sinne keine konstanten, er soll mal schön bei define bleiben
bye
tt
-
@Tester:
Effektiv C++ sagt: "beforzugen sie const und inline gegenüber #define"
Grund: Fehler mit dem Kompiler abfangen
-
the_freak
*********Effektiv C++ sagt:
dann bist du der erste der "effektiv C++" in C programmiert. Ich bleibe dabei
ein const int...ist kein "konstanter" Ausdruck im eigentlichen Sinn.
bye
tt
-
jo, hatte mich etwas versehen ^^# Aber da es in C ja den ausdruck ebenfalls gibt hab ichs stehen lassen.
Gibs denn zwischen der C und der C++ variante n unterschied? denn das Prinzip is doch das selbe: Fehler schon mit dem Kompiler abfangen.
PS: sry für off topic ^^
-
THE_FreaK schrieb:
Gibs denn zwischen der C und der C++ variante n unterschied?
In C89 war folgendes nicht erlaubt:
int const size=7; int arr[size];
In C99 ist es erlaubt - aber nur weil arr in diesem Fall ein VLA wäre (Variable Length Array).
const in C heisst lediglich 'readonly'
Während es in C++ eine echte Konstante ausdrückt.
-
In C++ heißt const auch nur read-only:
void foo(int n) { const int s = n; int array[s]; // mööp }
Der Unterschied zwischen C und C++ ist hier nur, dass in C++ eine const-Variable unter gewissen Umständen als Compilezeitkonstante durchgeht, nämlich wenn sie nur durch Compilezeitkonstanten initialisiert wurde (rekursive Definition.)
-
hallo!Ich hab noch ne bessere Verbesserung:-)Und zwar die 3 geschweifte Klammer am Ende ohne die nämlich nichts geht....greets ciro
-
AJ schrieb:
Noch ne kleine Verbesserung
ciro schrieb:
#include <stdio.h> #define MAXX 3 #define MAXY 3 int main(){ int i,k,Matrix[MAXX][MAXY]; for(i=0;i<MAXX;i++){ for(k=0;k<MAXY;k++){ scanf("%d",&matrix[i][k]); }}
Somit brauchst bei Änderungen nur an einer Stelle etwas ändern. Anstatt #define kannst du auch mit const arbeiten.
@AJ Die 3 geschweifte Klammer am Ende wär noch etwas sinnvoller finde ich:-)
-
ciro schrieb:
@AJ Die 3 geschweifte Klammer am Ende wär noch etwas sinnvoller finde ich:-)
Tja, ich hab angenommen, dass dein geposteter Code fehlerfrei ist. Darum hab ich erst gar nicht nachgeschaut, ob da noch Fehler drin sind ;).
-
Hi Leutz!
Wisst ihr wie man ein 2-dimensionales Feld in eine datei speichern kann? Mit nem eindimensionalen hab ich keine probs...
schoma danke!
-
Wie das eindimensionale auch, nur dass du noch ne 2. schleife für den 2. index brauchst.
Wie du das abspeicherst bleibt dir überlassen.// Beispiel: for (int i=0; i<2; i++) { for (int j=0; j<AnzahlElemente; j++) { // code // Ein Zugriff auf ein Arryelement könnte z.B. so aussehen cout << myArray[i][j]; } }