Ir ao conteúdo

Posts recomendados

Postado

int main(){
    int numlado, medlado, perimetro=0, area=0;
    
    printf("informe o numero de lados da figura: ");
    scanf("%i",&numlado);
    printf("informe a medida do lado: ");
    scanf("%i",&medlado);
    
    perimetro=numlado+numlado;
    area=numlado*medlado;
    if(numlado==3){
           printf("Figura: Triangulo,e seu perimetro eh:%iperimetro");
    }
    if(numlado==4){
        printf("Figura: Quadrado,e sua area eh:%i",&area);
    }
    if(numlado==5){
        printf("Figura: Pentagono");
    }
    else if(numlado!=3||numlado!=4||numlado!=5){
        printf("Poligono não identificado");
    }
    return 0;
}

Postado

Aparentemente é problema nos ifs, acho que seria melhor encadear eles.

 

Edit

1 hora atrás, Gustavo Vieira2910. disse:

 if(numlado==3){
           printf("Figura: Triangulo,e seu perimetro eh:%iperimetro");
    }

 

A variável perimetro deve estar fora das aspas.

 

1 hora atrás, Gustavo Vieira2910. disse:

if(numlado==4){
        printf("Figura: Quadrado,e sua area eh:%i",&area);
    }

A variável area não precisa do &,

Postado
52 minutos atrás, Gustavo Vieira2910. disse:

 else if(numlado!=3||numlado!=4||numlado!=5){
        printf("Poligono não identificado");

52 minutos atrás, Gustavo Vieira2910. disse:

Nessa parte do programa tem um errro, sabe me informar qual?

 

Postado

@Gustavo Vieira2910. Algumas coisas.

 

Essa linha

printf("Figura: Triangulo,e seu perimetro eh:%iperimetro");

você colocou o nome da variável perimetro dentro da string de formato. É bom também inserir uma quebra de linha com o caractere de escape '\n', senão o próximo print vai aparecer agarrado a esse.

printf("Figura: Triangulo,e seu perimetro eh: %i\n", perimetro);

Nessa próxima linha, você usa o operador & que obtem o endereço da variável área, quando na verdade você quer seu valor

printf("Figura: Quadrado,e sua area eh:%i",&area);

A linha corrigida (com quebra de linha):

printf("Figura: Quadrado,e sua area eh: %i\n", area);

Por último, vou ler em português as últimas linhas:

if(numlado==5){
  printf("Figura: Pentagono");
}
else if(numlado!=3||numlado!=4||numlado!=5){
  printf("Poligono não identificado");
}

SE numlado igual a 5 ENTAO

    print "Figura: Pentagono"
SENÃO

    SE numlado diferente de 3 OU numlado diferente de 4 OU numlado diferente de 5 ENTAO

        print "Poligono não identificado"

 

A cláusula do último if está errada, mas mais do que isso, todos os ifs deveriam ser if-else, ao menos pra evitar o teste da variável numlado mais de uma vez, mesmo quando o resultado já foi encontrado.

 

Ou seja:

if(/*cláusula aqui*/)
{
  //instruções aqui
}
else if(/*próxima cláusula*/)
{
  //instruções.
}
//quantos outros else if forem necessários, terminando em else.
else
{
  //instruções quando nenhuma das expressões avaliadas nas cláusulas dos ifs resultarem em VERDADEIRO.
}

 

Postado
Em 11/12/2021 às 15:45, Gustavo Vieira2910. disse:
Em 11/12/2021 às 13:52, Gustavo Vieira2910. disse:

else if(numlado!=3||numlado!=4||numlado!=5){
        printf("Poligono não identificado");

Em 11/12/2021 às 13:52, Gustavo Vieira2910. disse:

Nessa parte do programa tem um errro, sabe me informar qual?

O conectivo certo é conjunção (E[&&]) e não disjunção (OU[||]).

Se já foi respondido, reforçarei: a expressão na condicional está falha porque mesmo com o número de lado válido, em duas das três expressões, será invalido, exceto se difere simultaneamente de todas, por exemplo, o valor 6, porém não 3, 4 ou 5, já que difere entre si.

 

Corrija de maneira que seja uma Conjunção OU um Intervalo Proporcional, qualquer uma das duas práticas é certa.

[:) 

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!