### FOR loop issues Hello all, I need some slight assistance on understanding why and how my program is one answer short of the right one I need. I know that may not make much sense so I'll just show you what I am talking about.

I have a program that needs to calculate the amount of green crud that has grown over 88 days, Using the Fibonacci Sequence. I have to write these in WHILE, FOR, and DO-WHILE.

WHILE
 ``123456789101112131415161718192021222324252627`` ``````#include #include #include using namespace std; int main() { ofstream out("Green Crud WHILE.out"); int days=88, fi=0, f1=10, f2=0, day=0; out << "\tGreen Crud Program (WHILE)\n\n" << setw(5) << " Crud(lbs) " << setw(15) << " Number of Days \n"; while(day<=days) { fi = f1 + f2; f2=f1; f1=fi; day+=5; out << " " << f1 << "\t\t\t\t" << day << endl; } out.close(); return 0; }``````

OUTPUT
 ``123456789101112131415161718192021`` `````` Green Crud Program (WHILE) Crud(lbs) Number of Days 10 5 20 10 30 15 50 20 80 25 130 30 210 35 340 40 550 45 890 50 1440 55 2330 60 3770 65 6100 70 9870 75 15970 80 25840 85 41810 90``````

FOR
 ``1234567891011121314151617181920212223242526`` ``````#include #include #include using namespace std; int main() { ofstream out("Green Crud FOR.out"); int days=88, fi, f1=10, f2=0; out << "\tGreen Crud Program (FOR)\n\n" << setw(5) << " Crud(lbs) " << setw(15) << " Number of Days \n"; for(int day=0; day<=days; day+=5) { fi = f1 + f2; f2=f1; f1=fi; out << " " << f1 << "\t\t\t\t" << day << endl; } out.close(); return 0; }``````

OUTPUT
 ``12345678910111213141516171819202122`` `````` Green Crud Program (FOR) Crud(lbs) Number of Days 10 0 20 5 30 10 50 15 80 20 130 25 210 30 340 35 550 40 890 45 1440 50 2330 55 3770 60 6100 65 9870 70 15970 75 25840 80 41810 85 ``````

To reiterate, I need understanding on why, in the FOR loop, the day=0 but why does the for start at 0 and the while doesn't? If it starts at 0 then 10 needs to be repeated for 0 and 5, then 20 for 10. When does each loop update the 'day'?
Before or after the `out << ...`? IN the for loop it updates within the parameters. line 15. and in the while loop its on line 20. I don't understand why I have the same information within each program, and yet I get different outputs.

After some thought I think the output needs to be

 ``12345`` ``````10 0 10 5 20 10 30 15 etc``````

But I'm unsure how to do this
Last edited on You just need to move the `day+=5;` to after the `out<<`. A `for` loop has initalization, condition, increment, and body.
The increment is executed after the body on each iteration.

If you show value before you change it, then you see the original value.
If you show value after you change it, then you see the modified value. "Four digit numbers which first digit is greater than the sum of the third and the fourth digits" @Aysulu31,
Please write out 1650 times: "Thou shalt not hijack another forum poster's thread ... with homework questions ... which you have made no attempt at".
Last edited on @Aysulu, you can come out of the naughty box.

BTW a budding programmer would have written a short program to pay the hijack fine.

 ``12345678910111213141516171819202122232425262728`` ``````#include int main() { int array{0}; int number{0}; int temp{0}; for(int i = 1000; i < 10000; i++) { number = i; std::cout << number << ' '; for(int j = 3; j >= 0; j--) { temp = number % 10; array[j] = temp; number /= 10; } if( array > array + array) std::cout << "Bingo!"; std::cout << '\n'; } return 0; }``````