PiR2
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Estrutura de repetição (LOOP) em C

2 participantes

Ir para baixo

Estrutura de repetição (LOOP) em C Empty Estrutura de repetição (LOOP) em C

Mensagem por wacandido Dom 18 Jun 2017, 17:19

Boa tarde, estou tentando implementar no algoritmo a seguinte ordem de ciclos e ações:

ciclo      ação


força     dobra               // ciclo 1
jedi       + 1000             // ciclo 2
força     dobra              // ciclo 3 (repetição do ciclo 1)
jedi      + 1000             // ciclo 4 (repetição do ciclo 2)

.... .....                         // ciclo n

e assim sucessivamente 



ou seja, o que desejo fazer é isso: 

 

valor = 1000   n = 4 ciclos (digitado)

 

* ciclo 1: 1000*2 = 2000
* ciclo 2: 1000 + 1000 = 2000
* ciclo 3: 2000*2 = 4000
* ciclo 4: 2000 + 1000 = 3000


 

total: 11000

 

Pedaço do meu código:

 

/* Ciclos de Treinamento */

 

    forca = valor*2;                                    // ciclo 1
    jedi = valor + 1000;                             // ciclo 2
    parcial1,parcial2 = 0;


 

    for (i=0 ; i <= n-2 ; i++ )
    {
        if (i % 2 != 0)
        {
           nforca = forca*2;                                             // ciclo 3
           parcial1 = parcial1 + nforca;
        }
        else
        {
            njedi = jedi + 1000;                                       // ciclo 4
            parcial2 = parcial2 + njedi;
        }
    }


   

    parcial = parcial1 + parcial2;
    total = forca + jedi + parcial;


 

Não consigo chegar nesse valor de 11000, se alguém puder contribuir. 

Antecipadamente agradeço

wacandido
Padawan
Padawan

Mensagens : 72
Data de inscrição : 02/10/2012
Idade : 42
Localização : Rio de Janeiro - Brasil

Ir para o topo Ir para baixo

Estrutura de repetição (LOOP) em C Empty Re: Estrutura de repetição (LOOP) em C

Mensagem por xSoloDrop Seg 19 Jun 2017, 16:53

for (i=0; i <= n-2; i++)
Nessa parte você vai repetir o ciclo 3 vezes. O certo seria repetir apenas 2 vezes (ciclos 3 e 4):
for (i=0; i < n-2; i++)

Dica: tente deixar seu código mais objetivo e sucinto.
Código:
int forca = valor, jedi = valor; /*Aqui eu associo "forca" e "jedi" a "valor". Assim,
 você não precisa repetir "valor" no loop.*/
 soma1 = 0, soma2 = 0;
 for (ciclo = 1; ciclo <= n ; ciclo++) /*Observe que os ciclos 1 e 2 já estão dentro
  do loop. Assim seu código ficará mais fluido.*/
 {
 if (ciclo % 2 != 0)
 {
 forca *= 2; //Ao invés de usar x = x * 2, use x *= 2. O mesmo vale para a soma.
 soma1 += forca;
 }
 else
 {
 jedi += 1000;
 soma2 += jedi;
 }
 }
 int total = soma1 + soma2;
xSoloDrop
xSoloDrop
Fera
Fera

Mensagens : 492
Data de inscrição : 23/03/2015
Idade : 26
Localização : Araçatuba SP

Ir para o topo Ir para baixo

Estrutura de repetição (LOOP) em C Empty Re: Estrutura de repetição (LOOP) em C

Mensagem por xSoloDrop Seg 19 Jun 2017, 16:55

xSoloDrop escreveu:
for (i=0; i <= n-2; i++)
Nessa parte você vai repetir o ciclo 3 vezes. O certo seria repetir apenas 2 vezes (ciclos 3 e 4):
for (i=0; i < n-2; i++)
Dica: tente deixar seu código mais objetivo e sucinto.
Código:
int forca = valor, jedi = valor; /*Aqui eu associo "forca" e "jedi" a "valor". Assim,
você não precisa repetir "valor" no loop.*/
soma1 = 0, soma2 = 0;

for (ciclo = 1; ciclo <= n ; ciclo++) /*Observe que os ciclos 1 e 2 já estão dentro
do loop. Assim seu código ficará mais fluido.*/
    {
        if (ciclo % 2 != 0)
        {
            forca *= 2; //Ao invés de usar x = x * 2, use x *= 2. O mesmo vale para a soma.
            soma1 += forca;
        }
        else
        {
          jedi += 1000;
          soma2 += jedi;
        }
    }
int total = soma1 + soma2;
xSoloDrop
xSoloDrop
Fera
Fera

Mensagens : 492
Data de inscrição : 23/03/2015
Idade : 26
Localização : Araçatuba SP

Ir para o topo Ir para baixo

Estrutura de repetição (LOOP) em C Empty Re: Estrutura de repetição (LOOP) em C

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos