Correção Exercícios - Aula 5
1) Escreva um programa que leia 3 números inteiros, calcule a média aritmética e escreva a
resposta para o usuário.
#include <stdio.h>
main()
{
float n1, n2, n3; /* números que serão lidos */
float media; /* armazenará a resposta (média artimética) */
printf("Número 1: ");
scanf("%f", &n1);
getchar(); /* nosso faxineiro */
printf("Número 2: ");
scanf("%f", &n2);
getchar();
printf("Número 3: ");
scanf("%f", &n3);
getchar();
/* Agora, o cálculo */
media= (n1+n2+n3)/3;
/* Mostrando o resultado pro usuário... */
printf("Média aritmética: %.2f\n", media);
return 0;
}
Se você fez o programa e testou, deve ter percebido que se n1, n2 e n3 forem
inteiros, o programa exibirá o resultado da divisão inteira, e não real. Se
percebeu, garoto esperto! Se não sacou, bastava declarar as variáveis dos 3
números a ler como float, e não como int.
2) Faça um programa que, dado o valor de uma compra, calcule o ICMS a ser pago; considere uma taxa
de 12%.
#include <stdio.h>
main()
{
float valor, icms;
printf("Digite o valor da compra: ");
scanf("%f", &valor);
/* O cálculo... */
icms= valor*0.12;
printf("ICMS a ser pago: %.2f\n");
return 0;
}
3) Dado um número com 3 algarismos, faça um programa para inverter a ordem de seus algarismos.
#include <stdio.h>
/* Veja esta interessante técnica para extrair os algarismos de um número */
main()
{
int num, centena, dezena, unidade, invert;
printf("Digite um número de 3 algarismos: ");
scanf("%3d", &num);
/* extraindo a centena */
centena= num/100;
/* extraindo a dezena */
dezena= (num-100*centena)/10;
/* extraindo a unidade */
unidade= (num-(centena*100 + dezena*10));
/* Agora nós já temos cada pedaço do número. Basta montar, invertido */
invert= (unidade*100)+(dezena*10)+centena;
/* imprime para o usuário... */
printf("Invertido: %d\n", invert);
return 0;
}
Só um exemplo: se o cara digitar 354, 3 é a centena, 5 é a dezena e 4 é a unidade.
Sacou como eu queria que fizesse o programa? Houve até uma resposta no forum usando scanf(), mas
assim é melhor, pois você pode pegar qualquer número, sem depender do scanf(), e invertê-lo, ou
então extrair suas partes (unidade, dezena, centena, etc.) para algum fim. Bem, agora vocês tem um
truquezinho na manga... :)
4) Dado um valor em anos, faça um programa que converta para segundos.
#include <stdio.h>
main()
{
float anos;
double segundos;
printf("Digite os anos: ");
scanf("%f", &anos);
segundos= anos*(86400*365);
printf("Em segundos: %f\n", segundos);
return 0;
}
Esse eu acho que forcei a barra... Poderia ser minutos mesmo... :)