Ir ao conteúdo
  • Cadastre-se

problema com if na linguagem C


Rogerio_xD

Posts recomendados

Escreva um programa em C para ler 3 valores (considere que não serão informados valores iguais) e

escrever a soma dos 2 maiores.

void main()

{

int a, b, c, soma;

printf("Digite o primeiro valor: ");

scanf("%d", &a);

printf("Digite o segundo valor: ");

scanf("%d", &B);

printf("Digite o terceito valor: ");

scanf("%d", &c);

if (a > c < B)

soma = a + b;

printf("Soma e: %d", soma);

if (a > b < c)

soma = a + c;

printf("Soma e: %d", soma);

if (b > c < a)

soma = b + a;

printf("Soma e: %d", soma);

if (b > a < c)

soma = b + c;

printf("Soma e: %d", soma);

if (c > b < a)

soma = c + a;

printf("Soma e: %d", soma);

if (c > a < B)

soma = c + b;

printf("Soma e: %d", soma);

return 0;

}

Compilei desse jeito, ele ate faz certo as somas mais ele mostra os 6 jeitos de somas ¬¬. Alguem pode da uma dica ae... talvez eu esteja usando o IF de forma errada. OBRIGADO !

Link para o comentário
Compartilhar em outros sites

o erro está no if, dá pra ver de cara

um operador relacional não pode ser sobrecarregado,

if(a>c<B) // errado!

sobrecarregar um operador é você utilizá-lo várias vezes em uma expressão, um operador relacional(<, >, >=, <=, ==, !=) não pode ser sobrecarregado.

você pode usar && (E), || (OU), ! (NÃO), operadores lógicos

escreveria os ifs assim,

if(a>c && c<B) // certo

Link para o comentário
Compartilhar em outros sites

Apareceu 6 respostas novamente :( . Quero que aparece só uma resposta ...

void main()

{

int a, b, c, soma;

printf("Digite o primeiro valor: ");

scanf("%d", &a);

printf("Digite o segundo valor: ");

scanf("%d", &B);

printf("Digite o terceito valor: ");

scanf("%d", &c);

if (a > b && b > c);

soma = a + b;

printf("Soma e: %d", soma);

if (a > b && b < c);

soma = a + c;

printf("Soma e: %d", soma);

if (a < b && a > c);

soma = b + a;

printf("Soma e: %d", soma);

if (a < b && a < c);

soma = b + c;

printf("Soma e: %d", soma);

if (a < c && a > B);

soma = a + c;

printf("Soma e: %d", soma);

if (a < c && a < B);

soma = c + b;

printf("Soma e: %d", soma);

return 0;

}

Vocês não vão acreditar porque o programa estava mostrando os 6 resultados... era por causa do (;) tpo aqui ou:

if (a < b && a > c); --- > esse (;) erra o problema oO.

soma = b + a;

printf("Soma e: %d", soma);

Descobri na raça, na cagada, na força de vontade, nunca mais vou esquecer disso Putz !

Link para o comentário
Compartilhar em outros sites

É você colocou ; na frente do if (...).

Mas precisa de seis printf(...)?

como Listeiro 037 disse, podia ser escrito assim:


void main()
{
int a, b, c, soma;

printf("Digite o primeiro valor: ");
scanf("%d", &a);
printf("Digite o segundo valor: ");
scanf("%d", &;
printf("Digite o terceito valor: ");
scanf("%d", &c);

if (a > b && b > c) soma = a + b;
if (a > b && b < c) soma = a + c;
if (a < b && a > c) soma = b + a;
if (a < b && a < c) soma = b + c;
if (a < c && a > soma = a + c;
if (a < c && a < soma = c + b;

printf("Soma e: %d", soma);
return 0;
}

você pode simplificar esses ifs, é só usar um pouco de lógica

Link para o comentário
Compartilhar em outros sites

Em vez de procurar os dois maiores, procure o menor.


if(a<b && a<c) soma=b+c;
else
if(b<a && b<c) soma=a+c;
else soma=a+b;

Primeiro ele testa se 'a' é o menor.

Se não for, ele teste se é o 'b' o menor.

Ora, se não for 'a' nem o 'b', é o 'c'

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...