Jump to content
Fórum Script Brasil
  • 0

[Deitel] Cap.2 - Exercicio 2.19


brunoandrad
 Share

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...