Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha Resolução

#include <stdio.h>

void potenci(int x, int y)
{
    int resultado=0;
    for (int i = 1; i < y; i++)
    {
        if(resultado==0)
        {
            resultado= x * x;
        }
        else
        {
            resultado= x * resultado;
        }
        
    }
    
    printf("%d elevado à %d é %d ",x,y,resultado);
}

int main ()
{   
    int num[2];
    printf("\n Digite dois números: ");
    scanf("%d",&num[0]);
    scanf("%d",&num[1]);

    potenci(num[0],num[1]);

    return 1;

}
1 resposta
solução!

Olá, Claudio! Tudo bem?

Sua implementação da função para calcular a potência de um número está quase correta, mas há um pequeno erro em sua lógica. Vamos ajustá-la para que funcione corretamente.

Na sua função potenci, o cálculo da potência está um pouco confuso. A lógica correta seria multiplicar x por ele mesmo y vezes. Além disso, é importante inicializar resultado com 1, pois qualquer número elevado a 0 é 1, e multiplicar por 1 não altera o resultado.

Aqui está uma sugestão de como você pode corrigir a função:

#include <stdio.h>

void potenci(int x, int y)
{
    int resultado = 1;
    for (int i = 0; i < y; i++)
    {
        resultado *= x;
    }
    
    printf("%d elevado à %d é %d\n", x, y, resultado);
}

int main ()
{   
    int num[2];
    printf("\nDigite dois números: ");
    scanf("%d", &num[0]);
    scanf("%d", &num[1]);

    potenci(num[0], num[1]);

    return 0;
}

As principais mudanças foram:

  • Inicializar resultado com 1.
  • Alterar o loop para multiplicar resultado por x, y vezes.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.