Ir ao conteúdo

Posts recomendados

Postado

Criar uma função contador que funciona da seguinte forma:

• o valor inicial do contador é 5.

• toda vez que a função for chamada o contador dela deve ser diminuído.

• o contador deve se reinicializar automaticamente: quando o contador chegar em 0, na próxima chamada da função o contador deve ser reinicializado com 5 de novo.

 

Não tenho nem ideia de como fazer esse exercício, se alguém puder me dar uma luz eu ficaria agradecida.

  • Solução
Postado

Se for do jeito que entendi terá que usar um static int que será a variável contadora. Atribuir 5 a ela; mostrar seu conteúdo; decrementar a variável e fazer a comparação no final e quando satisfazer essa comparação atribuir novamente o 5. Aí no main é só colocar várias chamadas dessa função.

  • Obrigado 1
Postado

Implementando a teoria do @allanxd, uma possível solução poderia ser assim:

#include <stdio.h>
#include <stdlib.h>

void funcao(){
    static int contador = 5;

    printf("Função: %i \n", contador);
    contador -= 1;

    if (contador == 0) {
        contador = 5;
    }
}

int main(){
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();

    return 0;
}

 

Postado

Tem um jeito de fazer sem usar static int? Nunca foi apresentado isso em aula e era para ser possível resolver os exercícios somente com o conteúdo aprendido até o momento (o básico + vetores, matrizes e funções)

Postado

@LuanaCocielo A variável só deve existir dentro da função? Porque dá para chegar ao mesmo resultado se usar variável global.

 

No momento não me vem à cabeça outra maneira de ter esse resultado.

Postado

Tenta usar uma variável global:

#include <stdio.h>
#include <stdlib.h>

int contador = 5;

void funcao(){
    printf("Função: %i \n", contador);
    contador -= 1;

    if (contador == 0) {
        contador = 5;
    }
}

int main(){
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();
    funcao();

    return 0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!