Ir para conteúdo
Fórum Script Brasil
  • 0

[Deitel] Cap.2 - Exercicio 2.19


brunoandrad

Pergunta

Pessoal, como não encontrei resposta de alguns exercícios do livro do Deitel - C, Como programar - 6ª edição, vou postar nessa área alguns códigos resolvidos para quem estiver estudando poder tira duvidas e ver as resoluções.

 

Escreva um programa em C que receba três números inteiros diferentes digitados no teclado
e imprima a soma, a média, o produto, o menor e o maior desses números

 

#include <stdio.h>
#include <stdlib.h>

void compara(int a, int b, int c){
    int menor, maior;
    if (a>b){
        if (a>c){
            maior = a;
        }else{
        maior = c;
        }
    }

    if (a<b){
        if (a<c){
            menor=a;
        }else{
            menor=c;

            }
    }

    if (a<b){
        if (b>c){
            maior = b;
        }else{
            maior = c;
            }
    }

    if (b<a){
        if (b<c){
            menor=b;

        }else{
            menor=c;
        }
    }

    printf("\n Maior: %d", maior);
    printf("\n Menor: %d", menor);
}

int main()
{
    int a,b,c,soma,media,produto;
    printf("Bem vindo ao programa 3 num\n");

    printf("\nDigite tres numeros: ");
    scanf ("%d", &a);
    scanf ("%d", &b);
    scanf ("%d", &c);

    soma = a+b+c;
    produto = a*b*c;
    media = (a+b+c)/3;



    printf("\n SOMA: %d", soma);
    printf("\n Media: %d", media);
    printf("\n Produto: %d", produto);
    compara(a,b,c);


    printf("\n\n FIM!!! \n \n");

    system("pause");
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Veja bem, eu tenho esse livro e tenho essa questão... e lamento informar que a sua resposta está

rigorosamente errada !

A questão é a seguinte:

 

"Escreva um programa em C que receba três números inteiros diferentes digitados no teclado e imprima a soma, a média, o produto, o menor e o maior desses números. Use a instrução if somente na forma ensinada neste capítulo."

 

 Acontece que o cap 2 ainda não ensinou sobre if´s aninhados, e muito menos sobre funções... e ainda a questão fala sobre como será o formato de saída do programa, e você fez totalmente diferente.

 

 A sua solução está correta (mesmo tendo uma saída diferente da pedida na questão), mas rigorosamente errada para os requisitos da questão.

Eu estou preso nessa questão e ainda não encontrei uma forma de dar solução para encontrar o maior e o menor número usando apenas if´s não aninhados.

 

 (alguém resolveu ?)

 

 

Bom, depois de horas de raciocínio, finalmente consegui uma solução respeitando os requisitos da questão... segue abaixo:

(SPOIL ABAIXO, SELECIONE PARA ENXERGAR).

 

/* Programa que informa a soma, a média , o menor e o maior
   números entre três números inteiros */

#include <stdio.h>

int main()
{
   //variáveis
   int n1, n2, n3, soma, mult, media;
   int comparar = 0;
   int maior = 0;
   int menor = 0;

   //entrada
   printf("Calculadora de soma, multiplicacao, media, menor e maior número\n\n");

   printf("Informe 3 numeros inteiros: ");
   scanf("%d%d%d", &n1, &n2, &n3);

   printf("\n\n");

   //processamento
   soma  =  n1 + n2 + n3;      // Soma
   mult  =  n1 * n2 * n3;      // produto
   media = (n1 + n2 + n3) / 3; // média

   //maior
   if(n1 > n2)
      comparar = n1;

   if(n1 > n3)
      comparar = n1;

   maior = comparar;

   if(n2 > n1)
      comparar = n2;

   if(n2 > n3)
      comparar = n2;

   if(comparar > maior)
      maior = comparar;

   if(n3 > n1)
      comparar = n3;

   if(n3 > n2)
      comparar = n3;

   if(comparar > maior)
      maior = comparar;

   //menor
   // 52 1 2

   comparar = 999999999;

   if(n1 < n2)
      comparar = n1;

   if(n1 < n3)
      comparar = n1;

   menor = comparar;

   if(n2 < n1)
      comparar = n2;

   if(n2 < n3)
      comparar = n2;

   if(comparar < menor)
      menor = comparar;

   if(n3 < n1)
      comparar = n3;

   if(n3 < n2)
      comparar = n3;

   if(comparar < menor)
      menor = comparar;

   //saída
   printf("A soma e %d\n",    soma);
   printf("A media e %d\n",   media);
   printf("O produto e %d\n", mult);
   printf("O maior e %d\n",   maior);
   printf("O menor e %d\n",   menor);

return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Cara peguei este livro da Deitel para ver se consigo aprender... Kkkkkk...

Depois de estudar um pouquinho e entender o conceito... Consegui diminuir o código... 

Mas o seu código me ajudou bastante a chegar na minha soluçao... Vlw

/*
Escreva um programa em C que receba três números inteiros diferentes digitados no teclado e imprima a soma, a média,
o produto, o menor e o maior desses números. Use a instrução if somente na forma ensinada neste capítulo. A tela de
diálogo deve aparecer como se segue:
==============================================
Entre com três inteiros diferentes: 13 27 14
A soma e 54
A media e 18
O produto e 4914
O menor e 13
O maior e 27
==============================================
        teste de valores
            1, 2, 3 - ok
            1, 3, 2 - ok
            2, 1, 3 - ok
            2, 3, 1 - ok
            3, 2, 1 - ok
            3, 1, 2 - ok
*/

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
main() {
    setlocale(LC_ALL, "Portuguese");                                             //Permite a acentuação
    int num1, num2, num3, soma, maior, menor;                         //Varáveis
    maior = 0;                                                                                     //Determina o maior
    printf("Entre com três inteiros e lhe direi\n");                        //Mensagem
    printf("o relacionamento que eles satisfazem:\n");             //Para o usuário
    scanf("%d %d %d", &num1, &num2, &num3);                        //Lê os valores
    soma = num1 + num2 + num3;                                               //Soma
    if (num1 > maior)                                                                       //condição de maior
        maior = num1;
    if (num2 > maior)
        maior = num2;
    if (num3 > maior)
        maior = num3;

    menor = soma;                                                                              // determina o menor numero
    if (num1 < menor)                                                                        //condição de menor
        menor = num1;
    if (num2 < menor)
        menor = num2;
    if (num3 < menor)
    menor = num3;
    printf("A soma %d\n", soma);                                                       //imprime os resultados
    printf("A media %d\n", soma / 3);
    printf("O produto %d\n", num1 * num2 * num3);
    printf("O menor número é: %d\n", menor);
    printf("O maior número é: %d\n", maior);
    system("pause");
    return (0);
}
 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 13/11/2015 at 16:33, brunoandrad disse:

Pessoal, como não encontrei resposta de alguns exercícios do livro do Deitel - C, Como programar - 6ª edição, vou postar nessa área alguns códigos resolvidos para quem estiver estudando poder tira duvidas e ver as resoluções.

 

 


#include <stdio.h>
#include <stdlib.h>

void compara(int a, int b, int c){
    int menor, maior;
    if (a>b){
        if (a>c){
            maior = a;
        }else{
        maior = c;
        }
    }

    if (a<b){
        if (a<c){
            menor=a;
        }else{
            menor=c;

            }
    }

    if (a<b){
        if (b>c){
            maior = b;
        }else{
            maior = c;
            }
    }

    if (b<a){
        if (b<c){
            menor=b;

        }else{
            menor=c;
        }
    }

    printf("\n Maior: %d", maior);
    printf("\n Menor: %d", menor);
}

int main()
{
    int a,b,c,soma,media,produto;
    printf("Bem vindo ao programa 3 num\n");

    printf("\nDigite tres numeros: ");
    scanf ("%d", &a);
    scanf ("%d", &b);
    scanf ("%d", &c);

    soma = a+b+c;
    produto = a*b*c;
    media = (a+b+c)/3;



    printf("\n SOMA: %d", soma);
    printf("\n Media: %d", media);
    printf("\n Produto: %d", produto);
    compara(a,b,c);


    printf("\n\n FIM!!! \n \n");

    system("pause");
    return 0;
}

oi .... 

apenas acho ! 

#include<stdio.h>


int main(){
    
    int A, B , C, soma, produto;
    float media;
    
    printf("Informe o valor dos 3 numeros ( salvos em A-B-C): ");
    scanf("%d%d%d", &A, &B, &C);
    
    // já salvos ! ( // comentarios ) 
    
    soma= A + B + C; 

    // por precaucao, se coloca float em divisao , pois o resultado podera ser decimal! 
    media= ( A+B+C)/(float)3;
    
    produto= A*B*C;
    
    printf("A soma =  %d , a media = %f , produto = %.2d", soma, media, produto );
    
    if( A > B && A > C){
        printf(" \n o maior e A ");
    }
    if( B > A && B > C){
        printf( "o maior e B ");
    }
    if( C > B && C > A){
        printf( "o maior e C");
    }
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...