Schleifen-Problem
-
Hallo,
könntet ihr mir mal bitte sagen warum diese Schleife nich funktioniert?
(Sie sollte eigentlich die 8er Reihe anzeigen aber es kommen immer nur so irrsinnig große Zahlen...)#include<iostream> #include<stdlib.h> int main() { int ar[10]; int i; ar[0]=8; for (i=1;i<10;++i) { ar[i]=ar[i]*8; } for (i=1;i<10;++i) { cout<<ar[i]; } system("PAUSE"); }
Wär nett wenn ihr mir weiterhelfen könntet!
-
vielleicht willst du
ar[i] = ar[i-1]*8
?
-
neee, so funktionierts auch net... Muss an was andrem liegen...
-
Liegt daran das du den Feldern ar[1]-ar[9] keinen Wert zuweist. Darum steht in diesen Feldern nur irgendein Müll.
-
lesen sollte man können. du willst die achter reihe, also 8, 16, 24, 32, etc.
dannfor (int i = 0; i < 10; ++i) arr[i] = 8*(i+1);
geh deinen schleifendurchlauf doch vorher mal im kopf durch!
dann siehst du (bei deiner schleife):for (int i = 1; i < 10; ++i) { arr[i] = arr[i]*8 }
1.durchlauf (i = 1):
arr[1] = arr[1]*8
was steht in arr[1]? irgendwas. irgendwas mal 8 = irgendwas-anderes. in arr[1] steht also nach dem ersten schleifendurchlauf irgendwas (-anderes als vorher).
aber keine konkrete zahl.bei der schleife, die ich oben angegeben hab steht im ersten durchlauf (i = 0):
arr[0] = 8*(0+1)
und 8*(0+1) ist gleich 8
arr[0] = 8also; tipp:
versuch dir eben, dir wirklich vorzustellen, was die schleife machen wird und ersetze (zumindest anfangs) das i gedanklich immer mit einer zahl, und überlege, ob es stimmen kann.