Ir ao conteúdo

Posts recomendados

Postado

Fiz esse codigo simple alguem sabe dizer porque ta dando esse erro:

Diz que espera uma else na linha 2.

 

#include <stdio.h>

main()
{
double valor;

scanf("%lf",&valor);

if (valor>=0|| valor<=25)
{
	printf("Intervalo [0,25]");
	else if (valor>25 || valor <=50)
	{
		printf("Intervalo [25,50]");
	}	
	else if (valor>50 || valor <=75)
	{
		printf("Intervalo [50,75]");
	}
	else if (valor >75 || valor <=100)
	{
		printf("Intervalo [75,100]");
	}
}else 
	printf("Fora de intervalo");
}

 

Postado

Olá!

 

 

Olha sou iniciante em C, mas já tive um problema similar no inicio de meus estudos . . .

 

 

- acho que você fez confusão com os sinais que são usados para a avaliação de valores, você colocou ( || ) quando acredito que o correto seja ( && ), quando fiz alguns testes aqui apenas o ( && ) apresentou o comportamento certo.

 

 

|13|error: expected ‘}’ before ‘else’| - ao que me parece o erro está lhe dizendo que está faltando uma chave de fechamento para o if anterior ao ELSE

 

 

|29|error: expected identifier or ‘(’ before ‘else’| - este erro parece estar associado ao momento em que consertei o erro da linha 13, acho que pelo que pude entender da logica do seu algoritmo você queria um if inicial que fizesse uma avaliação inicial que avaliasse se a variável está fora de uma valor especifico:

 

 

if ( valor > 0 && valor < 100 )
  {
     . . .
  }
   else
        printf ( "\nFora de intervalo\n" );

 

colocando o restante dos seus ifs aqui dentro com o correto sinal de avaliacao, o programa apresentou o comportamento que acredito que seja o esperado por voce.

 

 

- tambem faltou definir o tipo da função main() bem como colocar um return 0; antes da ultima chave de fechamento da funcao main(), pois, aqui o programa retornou alertas sobre os mesmos.

 

 

Bom por hora é só . . . Veja se as dicas acima lhe ajudam . . .

 

 

Ubuntu 14.04  GCC 4.8  CodeBlocks 13.12

 

 

Espero Ter Ajudado ! ! !

Postado
#include <stdio.h>

main() {
  double valor;

  scanf("%lf",&valor);

  if (valor>=0|| valor<=25) {
    printf("Intervalo [0,25]");

    if (valor>25 || valor <=50)
      printf("Intervalo [25,50]");
    else if (valor>50 || valor <=75)
      printf("Intervalo [50,75]");
    else if (valor >75 || valor <=100)
      printf("Intervalo [75,100]");

  } else
    printf("Fora de intervalo");
}

 

Postado

Opa!

 

 

 

Apenas algumas observações e correções adicionais . . .

 

 

 

- Na parte relativa ao intervalo que eu codifiquei o correto seria:

 

 

if ( valor >= 0 && valor <= 100 )

 

 

- E com relação ao erro no sinal de avaliação de valores em expressões:

 

 

|| - é usado para avaliar dois valores onde se apenas um deles for verdadeiro, a expressão inteira se tornará verdadeira, sendo este o motivo para o primeiro if ser sempre executado, pois, um dos valores sempre é verdadeiro, se entrarmos com os valores apropriados, para o algoritmo!

 

 

&& - é usado para avaliar dois valores, onde os dois tem de ser verdadeiros para que a expressão inteira se torne verdadeira, caso um dos dois não seja verdadeiro, a expressão inteira se tornará falsa!

 

 

 

Era só isso . . .

Postado
O que você quer deve ser isso aqui
O erro era porque vc fez um else if antes de ter um if dentro do if
  por exemplo
if
{
  else if
  {
  }
  else if
  {
  }
  else if
  {
  }
}

sendo que era para ser assim:
if
{
  if
  {
  }
  else if
  {
  }
  else if
  {
  }
}

#include <stdio.h>

main()
{
double valor;

scanf("%lf",&valor);

if (valor>=0|| valor<=25)
{
	printf("Intervalo [0,25]");
	if (valor>25 && valor <=50)
	{
		printf("Intervalo [25,50]");
	}	
	else if (valor>50 && valor <=75)
	{
		printf("Intervalo [50,75]");
	}
	else if (valor >75 && valor <=100)
	{
		printf("Intervalo [75,100]");
	}
}else 
	printf("Fora de intervalo");
}
 
Visitante
Este tópico está impedido de receber 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!