Ir ao conteúdo
  • Cadastre-se

C O que está errado no programa


Posts recomendados

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;
}

Link para o comentário
Compartilhar em outros sites

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 &,

Link para o comentário
Compartilhar em outros sites

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

 

Link para o comentário
Compartilhar em outros sites

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.

[:) 

Link para o comentário
Compartilhar em outros sites

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