Ir ao conteúdo

Problema em Exercicio Simples


robertobbs

Posts recomendados

Postado

Bom dia pessoal, estou com um problema nesse exercicio, em que devo dizer quais os valores das variaveis no final ( tenho que fazer isso na mão), o exercicio é o seguinte:

#include <stdio.h>
int main() {
int a = 0, b = 2, c = 0, aux;
while(c++ < 5) {
switch(c){
case 1:
case 2:
aux = c % b;
switch(aux) {
case 0:
++b;
break;
case 1:
a = ++a;
break;
}
break;
case 3:
a = a + b++ + c;
b = ++b - c;
break;
case 4:
a = --a + --b;
b = c % b;
break;
}
}
}

Joguei isso no compilador e o resultado deu :

A 7

B 0

C 6

porém fazendo na mão, só cheguei aos resultados:

A 6

B 0

C 4

AI pintaram as duvidas, no switch(aux), esse código só deve passar pelo Case 0 ,correto ?

O unico modo que achei pra variavel A ter o 7 armazenado , é passando pelo Case 1

a variavel C não deve ficar em 4 mesmo ( como fiz na mão ) pois o laço diz:

while(c++ < 5)

Se alguem puder dar um help, agradeço muito, valeu galera.

Postado

Boa noite robertobbs,

então, quando o c for igual a 1, o resto de 1/2 é 1... então entra em case 1 do switch(aux)..

talvez voce esteja se confundindo nos a++, ++a...

sempre que tiver a++, vai acrescentar 1 em a e depois realizar as operacoes

por exemplo:

a = 3;

b = a++;

neste caso, b = 4 e a = 4...

quando é ++a, é ao contrario, ele realiza as operacoes da linha e depois adiciona 1 ao a...

ex:

a = 3

b = ++a;

então b = 3 e a = 4...

Entendeu?

Postado
Boa noite robertobbs,

então, quando o c for igual a 1, o resto de 1/2 é 1... então entra em case 1 do switch(aux)..

talvez voce esteja se confundindo nos a++, ++a...

sempre que tiver a++, vai acrescentar 1 em a e depois realizar as operacoes

por exemplo:

a = 3;

b = a++;

neste caso, b = 4 e a = 4...

quando é ++a, é ao contrario, ele realiza as operacoes da linha e depois adiciona 1 ao a...

ex:

a = 3

b = ++a;

então b = 3 e a = 4...

Entendeu?

Não seria ao contrário?

pré incremento = ++n e pós= n++

Postado

então, ja consegui descobrir o que estava me confundindo

o Case 01 não tem break, por isso ele executa tudo que estiver abaixo, até o break do case 2 , aii sim ele passa pelo Case 1 da variavel AUX , por isso tava dando sempre um num a menos no A no final.

Agora consegui entender tudo, perguntei pro prof na faculdade , valeu galera que ajudou.

Moderação, se quiser trancar o tópico, ja pode :D

Att,

Roberto

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!