Brak iteracji w pętli for

0

Witam, zamieszczam kod przepisany z książki Symfonia C++ :

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;


enum etapy {nic, scenopis,proba_czytana,proba_kamerowa,nagranie = 6, montaz, postsynchron};
void stan_realizacji(etapy t[], int ile, int dzien_zdjeciowy);

int _tmain(int argc, _TCHAR* argv[])
{
	const int liczba_scen = 10;
	etapy scena[liczba_scen] = {scenopis,proba_czytana,proba_kamerowa};

	int dzien_realizacji = 1;

	scena[2] = nagranie;
	scena[5] = montaz;
	scena[9] = nagranie;
	scena[4] = proba_kamerowa;
	stan_realizacji(scena,liczba_scen,dzien_realizacji);

	dzien_realizacji++;

	scena[1] = proba_kamerowa;
	scena[5] = postsynchron;
	scena[0] = scenopis;
	scena[8] = scenopis;
	stan_realizacji(scena,liczba_scen,dzien_realizacji);
	
     _getch();
	
}

//********************************************************************************

void stan_realizacji(etapy t[], int ile, int dzien_zdjeciowy)
{
	cout << dzien_zdjeciowy << ". dzien realizacji filmu reklamowego" << endl;
	cout << "Stan realizacji: " << endl;
	

	for(int i = 0; i < ile; i++)
	{	
		cout << "Scena nr " << i << ", ";
		

		for(int k=0; k<t[k]; k++)
		{
			cout << "#";
		}
		cout << "\n";		
	}
}

Chodzi o ostatnią pętle w funkcji, coś się zawiesza i program wykonuje się tak :

1. dzien realizacji filmu reklamowego
Stan realizacji:
Scena nr 0, ###
Scena nr 1, ###
Scena nr 2, ###
Scena nr 3, ###
Scena nr 4, ###
Scena nr 5, ###
Scena nr 6, ###
Scena nr 7, ###
Scena nr 8, ###
Scena nr 9, ###
2. dzien realizacji filmu reklamowego
Stan realizacji:
Scena nr 0, ###
Scena nr 1, ###
Scena nr 2, ###
Scena nr 3, ###
Scena nr 4, ###
Scena nr 5, ###
Scena nr 6, ###
Scena nr 7, ###
Scena nr 8, ###
Scena nr 9, ###

A powinno być tak :

1. dzien realizacji filmu reklamowego
Stan realizacji:
Scena nr 0, #
Scena nr 1, ##
Scena nr 2, ######
Scena nr 3, 
Scena nr 4, ###
Scena nr 5, #######
Scena nr 6,
Scena nr 7, 
Scena nr 8, 
Scena nr 9, ######
2. dzien realizacji filmu reklamowego
Stan realizacji:
Scena nr 0, #
Scena nr 1, ##
Scena nr 2, ######
Scena nr 3, 
Scena nr 4, ###
Scena nr 5, #######
Scena nr 6, 
Scena nr 7, 
Scena nr 8, ###
Scena nr 9, ######

Ktoś wie dlaczego taką wartość otrzymuje ostatnia pętla zamiast t[0] i dlaczego się zawiesza? zmienna k jakby nie rosnie, jeszcze przed uruchomieniem petli t[0] = 1.

dodanie znaczników <code class="cpp"> - @furious programming

1

kod przepisany z książki Symfonia C++

int _tmain(int argc, _TCHAR* argv[])

Naprawdę?

Problem:

for(int k=0; k<t[k]; k++)

Powinno być:

for(int k=0; k<t[i]; k++)

http://melpon.org/wandbox/permlink/c70ID0cfB09D1UrV

2
  1. Bo przepisywać trzeb ze zrozumieniem: for(int k=0; k<t[i]; k++)
  2. Nie wiedź się na brak wiedzy fizyka (nie programisty) nigdy nie używaj k++ tam gdzie możesz użyć ++k, bo ten paskudny nawyk czknie się niejednokrotnie.
0

Własnie sam do tego doszedłem, dzięki za punkt 2 i odpowiedź. pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1