Exercícios resolvidos em linguagem C (Lista B)

Estarei disponibilizando abaixo 30+ exercícios resolvidos utilizando a linguagem C, espero que estes contribua nos seus estudos.

Linguagem C

C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).

Fonte: Wikipedia

Exercício 1

Desenvolver um algoritmo que leia um número inteiro e verifique se o número é divisível por 5 e por 3 ao mesmo tempo.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numero;

scanf("%d",&numero);

if (((numero % 5)==0) && ((numero % 3)==0)){
printf("O NUMERO E DIVISIVEL\n");
}
else{
printf("O NUMERO NAO E DIVISIVEL\n");
}
return 0;
}

Exercício 2

Dados quatro números distintos, desenvolver um algoritmo que determine e imprima a soma dos três menores.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numero1, numero2, numero3, numero4, soma;

scanf("%d",&numero1);
scanf("%d",&numero2);
scanf("%d",&numero3);
scanf("%d",&numero4);

if(numero1 > numero2 && numero1 > numero3 && numero1 > numero4)
{
soma = (numero2 + numero3 + numero4);
printf("%d\n",soma);
}

else if(numero2 > numero1 && numero2 > numero3 && numero2 > numero4)
{
soma = numero1 + numero3 + numero4;
printf("%d\n",soma);
}

else if(numero3 > numero1 && numero3 > numero2 && numero3 > numero4)
{
soma = numero1 + numero2 + numero4;
printf("%d\n",soma);
}

else if(numero4 > numero1 && numero4 > numero2 && numero4 > numero3)
{
soma = numero1 + numero2 + numero3;
printf("%d\n",soma);
}

return 0;

}

Exercício 2

Desenvolver um algoritmo que leia os coeficientes (a , b e c) de uma equação do segundo grau e calcule suas raízes. O programa deve mostrar, quando possível, o valor das raízes calculadas e a classificação das raízes.

/*#include<stdio.h>
#include<math.h>

int main()
{
float a, b, c, delta, X1, X2;

scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);

delta = (pow(b,2) - 4 * a * c);
X1 = (-b + sqrt(delta))/(2 * a);
X2 = (-b - sqrt(delta))/ (2 * a);

if (delta == 0)
{
printf("RAIZ UNICA\n");
printf("X1 = %.2f\n",X1);
}

else if (delta < 0 )
{
printf("RAIZES IMAGINARIAS\n");
}

else if (delta > 0 )
{
printf("RAIZES DISTINTAS\n");
printf("X1 = %.2f\n",X1);
printf("X2 = %.2f\n",X2);
}

return 0;

}

Exercício 3

Desenvolver um algoritmo para ler um número “x” e calcular e imprimir o valor de “y” de acordo com as condições abaixo:
y = x , se x < 1;
y = 0 , se x = 1;
y = x² , se x > 1;

/*#include<stdio.h>
#include<math.h>

int main()
{
int x, y;

scanf("%d",&x);

if(x < 1)
{
y = x;
printf("Y = %d\n",y);
}	

else if(x == 1)
{
y = 0;
printf("Y = %d\n",y);
}

else if(x > 1)
{
y = pow(x,2);
printf("Y = %d\n",y);
}

return 0;
}

Exercício 4 

Desenvolver um algoritmo para pedir um mês e ano e exibir o número de dias do mês / ano digitados.

/*#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int ano, anobissexto, mesfevereirobissexto;
char mes[15];

scanf("%s",mes);
scanf("%d",&ano);

if (ano % 4==0 ) {
anobissexto = 366;
mesfevereirobissexto = 29;
}

else {
anobissexto = 365;
mesfevereirobissexto = 28;
}

if (strcmp(mes,"JANEIRO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"FEVEREIRO") == 0){
printf("DIAS = %d\n",mesfevereirobissexto);
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"MARCO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"ABRIL") == 0){
printf("DIAS = 30\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"MAIO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"JUNHO") == 0){
printf("DIAS = 30\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"JULHO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"AGOSTO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"SETEMBRO") == 0){
printf("DIAS = 30\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

else if (strcmp(mes,"OUTUBRO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}
else if (strcmp(mes,"NOVEMBRO") == 0){
printf("DIAS = 30\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}
else if (strcmp(mes,"DEZEMBRO") == 0){
printf("DIAS = 31\n");
printf("DIAS NO ANO = %d\n",anobissexto);
}

return 0;	

}

Exercício 5 

Desenvolver um algoritmo para ler o número de uma sala de aula, sua capacidade e o total de alunos matriculados na mesma e imprimir uma linha mostrando o número da sala, sua capacidade, o número de cadeiras ocupadas e sua disponibilidade indicando se a sala está lotada ou não.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numerosala, capacidade, alunosmatriculados;

scanf("%d",&numerosala);
scanf("%d",&capacidade);
scanf("%d",&alunosmatriculados);

if (alunosmatriculados >= capacidade)
{
printf("SALA = %d\n",numerosala);
printf("CAPACIDADE = %d\n",capacidade);
printf("CADEIRAS OCUPADAS = %d\n",alunosmatriculados);
printf("SALA LOTADA\n");
}

else if (alunosmatriculados < capacidade)
{
printf("SALA = %d\n",numerosala);
printf("CAPACIDADE = %d\n",capacidade);
printf("CADEIRAS OCUPADAS = %d\n",alunosmatriculados);
printf("SALA NAO LOTADA\n");
}

return 0;
}

Exercício 6 

Desenvolver um algoritmo que determine o imposto de renda cobrado de um funcionário pelo governo. Seu programa deverá ler o valor do salário mínimo, o n° de dependentes, o salário do funcionário e o taxa de imposto normal que já foi paga pelo funcionário. O imposto bruto é:

• 20% do salário do funcionário se o funcionário ganha mais de 12 salários mínimos;
• 8% do salário do funcionário se o funcionário ganha mais de 5 salários mínimos e
• Quem ganha menos ou igual de 5 salários mínimos não é cobrado o imposto de renda.
Obs.: Sabe-se que o governo cobra 4% de taxa adicional sobre o IMPOSTO BRUTO.

/*#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{
int numerodependentes;
float salariominimo, salariofunc, taxaimposto, taxaimpostosalario, impostoderenda, impostobruto, impostoliquido, salariomaximo12, salariomaximo5, calcdependentes; 

scanf("%f",&salariominimo);
scanf("%d",&numerodependentes);
scanf("%f",&salariofunc);
scanf("%f",&taxaimposto);

salariomaximo12 = salariominimo * 12;
salariomaximo5 = salariominimo * 5;
calcdependentes = numerodependentes * 300.00;
taxaimpostosalario = (taxaimposto / 100) * salariofunc;

if ( salariofunc > salariomaximo12){
impostobruto = 0.2 * salariofunc;
impostobruto = 0.04 * impostobruto + impostobruto;
} 

else if (salariofunc >  salariomaximo5){
impostobruto = 0.08 * salariofunc;
impostobruto = 0.04 * impostobruto + impostobruto;
}

else if (salariofunc <= salariomaximo5){
impostobruto = 0;
}

impostoliquido = impostobruto - calcdependentes ;
impostoderenda = impostoliquido - taxaimpostosalario;

if (impostoderenda == 0){
printf("IMPOSTO BRUTO = %.2f\n",impostobruto);
printf("IMPOSTO LIQUIDO = %.2f\n",impostoliquido);
printf("RESULTADO = %.2f\n",impostoderenda);
printf("IMPOSTO QUITADO\n");
}

else if (impostoderenda < 0){
printf("IMPOSTO BRUTO = %.2f\n",impostobruto);
printf("IMPOSTO LIQUIDO = %.2f\n",impostoliquido);
printf("RESULTADO = %.2f\n",impostoderenda);
printf("IMPOSTO A RECEBER\n");
}

else if (impostoderenda > 0){
printf("IMPOSTO BRUTO = %.2f\n",impostobruto);
printf("IMPOSTO LIQUIDO = %.2f\n",impostoliquido);
printf("RESULTADO = %.2f\n",impostoderenda);
printf("IMPOSTO A PAGAR\n");
}

return 0;
}

Exercício 7

Desenvolver um algoritmo para calcular a conta de água para a SANEAGO. O custo da água varia dependendo se o consumidor é residencial, comercial ou industrial. A regra para calcular a conta é:

– Residencial: R$5,00 de taxa mais R$0,05 por m³ gastos;
– Comercial: R$500,00 para os primeiros 80 m³ gastos mais R$0,25 por m³ gastos;
– Industrial: R$800,00 para os primeiros 100 m³ gastos mais R$0,04 por m³ gastos;
O programa deverá ler a conta do cliente, consumo de água por metros cúbicos e o tipo de consumidor ( residencial, comercial e industrial ). Como resultado, imprima a conta do cliente e o valor real a ser pago pelo mesmo.

/*#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{
int contacliente, consumoagua;
float formula;
char tipoconsumidor[15];

scanf("%d",&contacliente);
scanf("%d",&consumoagua);
scanf("%s",tipoconsumidor);

if (strcmp(tipoconsumidor,"RESIDENCIAL") == 0){
formula = 5.00 + (0.05 * consumoagua);
printf("CONTA = %d\n",contacliente);
printf("VALOR DA CONTA = %.2f\n",formula);
}

if (strcmp(tipoconsumidor,"COMERCIAL") == 0 && consumoagua <= 80 ){
formula = 500.00;
printf("CONTA = %d\n",contacliente);
printf("VALOR DA CONTA = %.2f\n",formula);
}

else if (strcmp(tipoconsumidor,"COMERCIAL") == 0 && consumoagua > 80 ){
formula = 500.00 + ((consumoagua - 80) * 0.25);
printf("CONTA = %d\n",contacliente);
printf("VALOR DA CONTA = %.2f\n",formula);
}

if (strcmp(tipoconsumidor,"INDUSTRIAL") == 0 && consumoagua <= 100){
formula = 800.00;
printf("CONTA = %d\n",contacliente);
printf("VALOR DA CONTA = %.2f",formula);
}
else if (strcmp(tipoconsumidor,"INDUSTRIAL") == 0 && consumoagua > 100){
formula = 800.00 + ((consumoagua - 100 )* 0.04);
printf("CONTA = %d\n",contacliente);
printf("VALOR DA CONTA = %.2f\n",formula);
}

return 0;	

}

Exercício 8

Uma locadora de filmes tem a seguinte regra para aluguel de fitas.
– As segundas, terças e quintas (2, 3 e 5): um desconto de 40% em cima do preço normal;
– As quartas, sextas, sábados e domingos (4, 6, 7 e 1): preço normal;
– Aluguel de fitas comuns: preço normal e aluguel de lançamentos: acréscimo de 15% em cima do preço normal.

/*#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
float preconormal, descontopromo, precototal;
char dia[15], categoria[15];

scanf("%f",&preconormal);
scanf("%s",dia);
scanf("%s",categoria);

if (strcmp(dia,"SEGUNDA") ==0 || strcmp(dia,"TERCA") ==0 || strcmp(dia,"QUINTA") == 0){
descontopromo = preconormal - (0.4 * preconormal) ;
}

else if (strcmp(dia,"QUARTA") == 0|| strcmp(dia,"SEXTA") == 0|| strcmp(dia,"SABADO") ==0|| strcmp(dia,"DOMINGO")==0){
descontopromo = 0;
}

if (strcmp(categoria,"LANCAMENTO") == 0){
preconormal = (preconormal * 0.15);	
}

else if (strcmp(categoria,"COMUM") == 0){
preconormal = preconormal;	
}

precototal = descontopromo + preconormal;
printf("PRECO FINAL = %.2f\n",precototal);

return 0;	

}

Exercício 9

Desenvolver um algoritmo com as opções de calcular e imprimir o volume e a área da superfície de um cone reto, um cilindro ou uma esfera. O algoritmo deverá ler a opção da figura desejada (cone / cilindro / esfera) e de acordo com a opção escolhida calcular o volume e a área da superfície da figura pedida. Fórmulas:

/*#include<stdio.h>
#include<math.h>
#include<string.h>
#define pi 3.1415

int main()
{

   float raio, altura, volume, area;
   char tipo[10];

   scanf("%f",&raio);
   scanf("%f",&altura);
   scanf("%s",tipo);

   if (strcmp(tipo,"CONE")==0){
       volume = ((pi * pow(raio,2)) * altura) / 3;
       area = (pi * raio) * sqrt(pow(raio,2) + pow(altura,2));
       printf("VOLUME = %.2f\n",volume);
       printf("AREA = %.2f\n",area);
   }

else if (strcmp(tipo,"CILINDRO")==0){
       volume = ((pi * pow(raio,2)) * altura);
       area = (2 * pi) * (raio * altura);
       printf("VOLUME = %.2f\n",volume);
       printf("AREA = %.2f\n",area);
   }

   else if (strcmp(tipo,"ESFERA")==0){
       volume = (pi * 4 * pow(raio,3)) / 3;
       area = (4 * (pi * pow(raio,2)));
       printf("VOLUME = %.2f\n",volume);
       printf("AREA = %.2f\n",area);
   }

return 0;
}

Exercício 10

Um certo aço é classificado de acordo com o resultado de três testes abaixo, que devem determinar se o mesmo satisfaz as especificações:
1. Conteúdo de Carbono abaixo de 7;
2. Dureza Rockwell maior do que 50;
3. Resistência á tração maior do que 80.000 psi;

/*#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{
int conteudo, dureza, resistencia;

scanf("%d",&conteudo);
scanf("%d",&dureza);
scanf("%d",&resistencia);    

if (conteudo < 7 && dureza > 50 && resistencia > 80000){
printf("ACO DE GRAU = 10\n");
}

else if (conteudo < 7 && dureza > 50 && resistencia <= 80000) {
printf("ACO DE GRAU = 9\n");
}

else if (conteudo < 7 && dureza <= 50 && resistencia <= 80000){
printf("ACO DE GRAU = 8\n");
}

else if (conteudo >= 7 && dureza <= 50 && resistencia <= 80000){
printf("ACO DE GRAU = 7\n");
}	

return 0;
}

Exercício 11

Fazer um algoritmo que dado um número, calcular e escrever se este é positivo ou negativo, e múltiplo ou não de 3, ao mesmo tempo.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numero;

scanf("%d",&numero);

if (numero < 0)
{
printf("NEGATIVO\n");
}
else if (numero > 0)
{
printf("POSITIVO\n");
}

if (numero % 3 != 0)
{
printf("NAO MULTIPLO DE 3\n");
}

else if (numero % 3 == 0)
{
printf("MULTIPLO DE 3\n");
}
return 0;	
}

Exercício 12

Fazer um algoritmo que calcule e imprima o salário reajustado de um funcionário de acordo com as seguintes regras:
• Salário de até R$300,00 reajuste de 50%;
• Salário maiores que R$300,00 reajuste de 30%;

/*#include<stdio.h>
#include<math.h>

int main()
{
float salario, salarioreajustado;

scanf("%f",&salario);

if (salario <= 300.00){
salarioreajustado = (0.5 * salario) + salario;	
printf("SALARIO COM REAJUSTE = %.2f\n",salarioreajustado);
}

else if (salario > 300.00){
salarioreajustado = (0.3 * salario) + salario;	
printf("SALARIO COM REAJUSTE = %.2f\n",salarioreajustado);
}
return 0;	
}

Exercício 13

Fazer um algoritmo que dado três valores A, B e C verificar se eles formam um triângulo. Formando triângulo, dizer se é triângulo equilátero, isósceles ou escaleno.

/*#include<stdio.h>
#include<math.h>

int main()
{
float A, B, C;

scanf("%f",&A);
scanf("%f",&B);
scanf("%f",&C);

if (C > A + B  || A > B + C  || B > A + C ){
printf("NAO FORMAM UM TRIANGULO\n");
}

else if ( A != B && A != C &&  B != C ){
printf("TRIANGULO ESCALENO\n");
} 

else if ( A == B && A == C){
printf("TRIANGULO EQUILATERO\n");
}

else if (A == B || A == C || B == C){
printf("TRIANGULO ISOSCELES\n");
}

return 0;	
}

Exercício 14

Fazer um algoritmo que dado os lados de um triângulo A, B e C. Dizer se os lados formam um triângulo:
• Retângulo = (A² = B² + C²);
• Obtusângulo = (A² > B² + C²);
• Acutângulo = (A² < B² + C²) ;

/*#include<stdio.h>
#include<math.h>

int main()
{
float A, B, C;

scanf("%f",&A);
scanf("%f",&B);
scanf("%f",&C);

if (pow(A,2) == pow(B,2) + pow(C,2)){
printf("TRIANGULO RETANGULO\n");
}

else if (pow(A,2) > pow(B,2) + pow(C,2)){
printf("TRIANGULO OBTUSANGULO\n");
}

else if (pow(A,2) < pow(B,2) + pow(C,2)){
printf("TRIANGULO ACUTANGULO\n");
}
return 0;	
}

Exercício 15

Fazer um algoritmo que calcule a média aritmética das 3 notas de um aluno e mostre, além do valor da média, uma mensagem de “Aprovado”, caso a média seja igual ou superior a 6, ou a mensagem “reprovado”, caso contrário.

/*#include<stdio.h>
#include<math.h>

int main()
{
float nota1, nota2, nota3, media;

scanf("%f",&nota1);
scanf("%f",&nota2);
scanf("%f",&nota3);

media = (nota1 + nota2 + nota3) / 3;

if (media >= 6.00){
printf("MEDIA = %.2f",media);
printf("APROVADO\n");
}

else if ( media < 6.00){
printf("MEDIA = %.2f\n",media);
printf("REPROVADO\n");
}	
return 0;	
}

Exercício 16

Implementar um algoritmo capaz de encontrar o maior dentre 3 números quaisquer. Suponha todos serem distintos.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numero1, numero2, numero3;

scanf("%d",&numero1);
scanf("%d",&numero2);
scanf("%d",&numero3);

if (numero1 > numero2 && numero1 > numero3){
printf("MAIOR NUMERO = %d\n",numero1);
}

else if (numero2 > numero1 && numero2 > numero3){
printf("MAIOR NUMERO = %d\n",numero2);
}

else if (numero3 > numero1 && numero3 > numero2){
printf("MAIOR NUMERO = %d\n",numero3);
}

return 0;	
}

Exercício 17

Escrever um algoritmo que leia o código de um aluno e suas três notas. Calcular a média ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem “Aprovado” se a média for maior ou igual a 5 e “reprovado” se a média for menor que 5.

/*#include<stdio.h>
#include<math.h>

int main()
{
int cod_aluno;
float nota1, nota2, nota3, mediaponderada;

scanf("%d",&cod_aluno);
scanf("%f",&nota1);
scanf("%f",&nota2);
scanf("%f",&nota3);

if (nota1 > nota2 && nota1 > nota3){
mediaponderada = (( nota1 * 4 ) + (nota2 * 3) + (nota3 * 3)) /10;
}

else if (nota2 > nota1 && nota2 > nota3){
mediaponderada = (( nota2 * 4 ) + (nota1 * 3) + (nota3 * 3)) /10;
}

else if (nota3 > nota1 && nota3 > nota2){
mediaponderada = (( nota3 * 4 ) + (nota1 * 3) + (nota2 * 3.)) /10;
}

if (mediaponderada >= 5.00){
printf("CODIGO = %d\n",cod_aluno);
printf("NOTA 1 = %.2f\n",nota1);
printf("NOTA 2 = %.2f\n",nota2);
printf("NOTA 3 = %.2f\n",nota3);
printf("MEDIA = %.2f\n",mediaponderada);
printf("APROVADO\n");
}

else if (mediaponderada < 5.00){
printf("CODIGO = %d\n",cod_aluno);
printf("NOTA 1 = %.2f\n",nota1);
printf("NOTA 2 = %.2f\n",nota2);
printf("NOTA 3 = %.2f\n",nota3);
printf("MEDIA = %.2f\n",mediaponderada);
printf("REPROVADO\n");
}

return 0;	
}

Exercício 18

Faça um algoritmo que leia um numero inteiro e mostre uma mensagem indicando se este número é par ou impar, se é positivo ou negativo.

/*#include<stdio.h>
#include<math.h>

int main()
{
int numeroint;

scanf("%d",&numeroint);

if (numeroint > 0){
printf("NUMERO POSITIVO\n");
}

else if (numeroint < 0){
printf("NUMERO NEGATIVO\n");
}

if ( numeroint % 2 == 0){
printf("NUMERO PAR\n");
}

else if ( numeroint % 2 != 0){
printf("NUMERO IMPAR\n");
}

return 0;	
}

Exercício 19

Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:
• Para Homens: (72.7 *h) – 58;
• Para Mulheres: (62.1 * h) – 44.7

/*#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
float altura, pesomasc, pesofem;
char sexo[10];

scanf("%f",&altura);
scanf("%s",sexo);

if (strcmp(sexo,"MASCULINO") == 0){
pesomasc = (72.7 * altura) - 58;
printf("PESO = %.2f\n",pesomasc);
}

else if (strcmp(sexo,"FEMININO") == 0) {
pesofem = (62.1 * altura) - 44.7;
printf("PESO = %.2f\n",pesofem);
}

return 0;	

}

Exercício 20

Um usuário deseja um algoritmo onde possa escolher que tipo de média deseja calcular a partir de 3 notas. Faça um algoritmo que leia as notas, a opção escolhida pelo usuário e calcule a média.
(a) aritmética
(b) ponderada (3,3,4)
(c) Harmônica:

/*#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
float nota1, nota2, nota3, calculo;
char tipocalculo[15];

scanf("%f",&nota1);
scanf("%f",&nota2);
scanf("%f",&nota3);
scanf("%s",tipocalculo);

if (strcmp(tipocalculo,"ARITMETICA") == 0){
calculo = (nota1 + nota2 + nota3) / 3;
printf("MEDIA ARITMETICA = %.2f\n",calculo);
}

else if (strcmp(tipocalculo,"PONDERADA") == 0){
calculo = (( nota1 * 3 ) + (nota2 * 3) + (nota3 * 4)) /10;
printf("MEDIA PONDERADA = %.2f\n",calculo);
}

else if (strcmp(tipocalculo,"HARMONICA") == 0){	
calculo = 3/(1/nota1 + 1/nota2 +1/nota3);
printf("MEDIA HARMONICA = %.2f\n",calculo);
}

return 0;	

}

Exercício 21

Escrever um algoritmo que lê um conjunto de 4 valores “i”, “a”, “b” e “c”, onde “i” é um valor inteiro e positivo e “a”, “b” e “c” são quaisquer valores reais e os escreva. A seguir:
• Se i = 1 escrever os três valores a, b, c em ordem crescente.
• Se i = 2 escrever os três valores a, b, c em ordem decrescente.
• Se i = 3 escrever os três valores a, b, c de forma que o maior número entre a,b,c fique entre os dois e o menor fique por último.

/*#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{
int a, b, c, i;

scanf("%d",&i);	
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);

if (i == 1){
if (a > b && a > c && b > c){
printf("%d%d%d",c,b,a);
}

else if (a > b && a > c && c > b){
printf("%d%d%d",b,c,a);
}

else if ( b > a && b > c && a > c){
printf("%d%d%d",c,a,b);
}

else if ( b > a && b > c && c > a){
printf("%d%d%d",a,c,b);
}

else if ( c > a && c > b && b > a){
printf("%d%d%d",a,b,c);
}

else if ( c > a && c > b && a > b){
printf("%d%d%d",b,a,c);
}
}

if ( i == 2){

if (a < b && a < c && b < c){
printf("%d%d%d",c,b,a);
}

else if (a < b && a < c && c < b){
printf("%d%d%d",b,c,a);
}

else if ( b < a && b < c && a < c){
printf("%d%d%d",c,a,b);
}

else if ( b < a && b < c && c < a){
printf("%d%d%d",a,c,b);
}

else if ( c < a && c < b && b < a){
printf("%d%d%d",a,b,c);
}

else if ( c < a && c < b && a < b){
printf("%d%d%d",b,a,c);
}
}

if ( i == 3 ){

if (a < b && a < c && b < c){
printf("%d%d%d",b,c,a);
}

else if (a < b && a < c && c < b){
printf("%d%d%d",c,b,a);
}

else if ( b < a && b < c && a < c){
printf("%d%d%d",a,c,b);
}

else if ( b < a && b < c && c < a){
printf("%d%d%d",c,a,b);
}

else if ( c < a && c < b && b < a){
printf("%d%d%d",b,a,c);
}

else if ( c < a && c < b && a < b){
printf("%d%d%d",a,b,c);
}

}	

return 0;
}

Exercício 22

Construa um algoritmo que calcule e escreva o custo e a quantidade de latas de tinta necessárias, para pintar tanques cilíndricos de combustível. É fornecida as seguintes informações: o preço da lata de 5 litros, o raio e a altura dos tanques cilíndricos. Cada litro de tinta pinta 3 metros quadrados.

/*#include<math.h>
#include<stdio.h>
#include<string.h>
#define pi 3.1415

int main(){

float precolata, altura, arealateral, areadabase, areatotal, custo;
int raio, quantidadelatas;

scanf("%f",&precolata);
scanf("%d",&raio);
scanf("%f",&altura);

areadabase = pi * pow(raio,2);
arealateral = 2 * pi * raio * altura;
areatotal = (2 * areadabase) + arealateral;

quantidadelatas = areatotal / 15;
custo = quantidadelatas * precolata;

printf("QUANTIDADE DE LATAS = %d\n",quantidadelatas);
printf("CUSTO = %.2f\n",custo);

return 0;

Exercício 23

Desenvolver um algoritmo para calcular e imprimir o preço final de um carro. O valor do preço inicial de fábrica é fornecido por meio de entrada. O carro pode ter as seguintes opções:
• (a) Ar condicionado: R$ 1750,00
• (b) Pintura Metálica: R$ 800,00
• (c) Vidro Elétrico: R$ 1200,00
• (d) Direção Hidráulica: R$ 2000,00

/*#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

char resposta1[10], resposta2[10], resposta3[10], resposta4[10];
float precofinal, precocarro, v1, v2, v3, v4;

scanf("%f",&precocarro);
scanf("%s",resposta1);
scanf("%s",resposta2);
scanf("%s",resposta3);
scanf("%s",resposta4);

if (strcmp(resposta1,"SIM")== 0){
v1 = 1750.00;
}

if (strcmp(resposta2,"SIM")== 0){
v2 = 800.00;

}

if (strcmp(resposta3,"SIM")== 0){
v3 = 1200.00;

}

if (strcmp(resposta4,"SIM")== 0){
v4 = 2000.00;

}
precofinal = precocarro + v1 + v2 + v3 + v4  ;
printf("PRECO FINAL = %.2f\n",precofinal);

return 0;
}

Exercício 24

Desenvolver um algoritmo que calcule o salário bruto e líquido de um funcionário.

/*#include<math.h>
#include<stdio.h>
#include<string.h>
#define salariominimo 136.00
#define salariohora_extra 10.00

int main(){

float salariobruto, salarioliquido, horasextrasreceber, descontoinss, descontoimpostoderenda;
int horaextras;
char nome[20];

scanf("%s",nome);
scanf("%d",&horaextras);

horasextrasreceber = horaextras * salariohora_extra;
salariobruto = salariominimo + horasextrasreceber;
descontoimpostoderenda = 0;
descontoinss = 0;

if (salariobruto > 1500){
descontoinss = salariobruto * 0.12;	
}

if (salariobruto > 2000){
descontoimpostoderenda =  salariobruto * 0.2 ;
}

salarioliquido = salariobruto - (descontoinss + descontoimpostoderenda);

printf("SALARIO BRUTO = %.2f\n",salariobruto);
printf("SALARIO LIQUIDO = %.2f\n",salarioliquido);

return 0;
}

Exercício 25

Números palíndromos são aqueles que escritos da direita para a esquerda ou da esquerda para a direita tem o mesmo valor. Ex.: 929, 44, 97379. Fazer um algoritmo que dado um número de 5 dígitos; calcular e escrever se este número é palíndromo.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int n1,n2,n3,n4,n5,numero,aux, inverter;

scanf("%d",&numero);

n1 = numero / 10000;
aux = numero % 10000;
n2 = aux / 1000;
aux = aux % 1000;
n3 = aux / 100;
aux = aux % 100;
n4 = aux / 10;
n5 = aux % 10;

inverter = (n5 * 10000) + (n4 * 1000) + (n3 * 100) + (n2 * 10) + n1;

if (numero == inverter){
printf("O NUMERO E PALINDROMO\n");
}

else {
printf("O NUMERO NAO E PALINDROMO\n");
}

return 0;
}

Exercício 26

Números quadrados perfeitos são aqueles cuja raiz quadrada é um número inteiro. Fazer um algoritmo que dado um número inteiro positivo, calcule se ele é ou não um quadrado perfeito.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int numero, verificaint;
float verificar, intoufloat;
scanf("%d",&numero);

verificar = sqrt(numero);
verificaint = verificar;
intoufloat = verificar - verificaint;

if (intoufloat == 0){
printf("E QUADRADO PERFEITO\n");
}

else {
printf("NAO E QUADRADO PERFEITO\n");
} 

return 0;
}

Exercício 27

O número 3025 possui a seguinte característica:
30 + 25 = 55
55² = 3025
Fazer um algoritmo que dado um número de 4 dígitos calcule e escreva se este número possui ou não tal característica.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int numero, n1, n2, n3, n4, aux, primeira, segunda, soma, calculo;

scanf("%d",&numero);

n1 = numero / 1000;
aux = numero % 1000;
n2 = aux / 100;
aux = aux % 100;
n3 = aux / 10;
n4 = aux % 10;

primeira = (n1 * 10 ) + n2;
segunda = (n3 * 10 ) + n4;
soma = primeira + segunda;
calculo = pow(soma,2);

if (calculo == numero){
printf("O NUMERO POSSUI TAL CARACTERISTICA\n");
}

else {
printf("O NUMERO NAO POSSUI TAL CARACTERISTICA\n");
}

return 0;
}

Exercício 28

Um banco concederá um crédito especial aos seus clientes, variável com saldo médio no último ano. Faça um algoritmo que leia o saldo médio de um cliente e calcule o valor do crédito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo médio e o valor de crédito (a porcentagem aplicada sobre o saldo médio).

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

float saldomedio, credito;

scanf("%f",&saldomedio);

if (saldomedio < 200){
credito = 0;
}

else if (saldomedio > 201 && saldomedio < 400){
credito = 0.2 * saldomedio;
printf("SALDO MEDIO = %.2f\n",saldomedio);
printf("VALOR DO CREDITO = %.2f\n",credito);
}

else if (saldomedio > 401 && saldomedio < 600){
credito = 0.3 * saldomedio;
printf("SALDO MEDIO = %.2f\n",saldomedio);
printf("VALOR DO CREDITO = %.2f\n",credito);
}

else if (saldomedio > 601){
credito = 0.4 * saldomedio;
printf("SALDO MEDIO = %.2f\n",saldomedio);
printf("VALOR DO CREDITO = %.2f\n",credito);
}

return 0;
}

Exercício 29

Um vendedor necessita de um algoritmo que calcule o preço total devido por um cliente. O algoritmo deve receber o código de um produto e a quantidade comprada e calcular o preço total, usando a tabela abaixo:

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

char cod_prod[10];
int quantidade;
float total;

scanf("%s",cod_prod);
scanf("%d",&quantidade);

if ( strcmp(cod_prod,"1001") == 0){
total = 5.32 * quantidade;
printf("PRECO TOTAL = %.2f\n",total);
}
else if ( strcmp(cod_prod,"1234") == 0){
total = 6.45 * quantidade;
printf("PRECO TOTAL = %.2f\n",total);
}
else if ( strcmp(cod_prod,"6548") == 0){
total = 2.37 * quantidade;
printf("PRECO TOTAL = %.2f\n",total);
}
else if ( strcmp(cod_prod,"0987") == 0){
total = 5.32 * quantidade;
printf("PRECO TOTAL = %.2f\n",total);
}
else if ( strcmp(cod_prod,"7623") == 0){
total = 6.45 * quantidade;
printf("PRECO TOTAL = %.2f\n",total);
}

else { 
printf("CODIGO INVALIDO\n");
} 

return 0;
}

Exercício 30

Um vendedor necessita de um algoritmo que calcule o preço total devido por um cliente. O algoritmo deve receber o código de um produto e a quantidade comprada e calcular o preço total, usando a tabela abaixo. Mostre uma mensagem no caso de código inválido.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

float precototal;
char cod_produto[10];
int quantidade;

scanf("%s",cod_produto);
scanf("%d",&quantidade);

if (strcmp(cod_produto,"ABCD") == 0 ){
precototal = 5.30 * quantidade;
printf("PRECO TOTAL = %.2f\n",precototal);
}

else if (strcmp(cod_produto,"XYKT") == 0 ){
precototal = 6.80 * quantidade;
printf("PRECO TOTAL = %.2f\n",precototal);
}

else if (strcmp(cod_produto,"BTSD") == 0 ){
precototal = 2.50 * quantidade;
printf("PRECO TOTAL = %.2f\n",precototal);
}

else if (strcmp(cod_produto,"YPOV") == 0 ){
precototal = 6.57 * quantidade;
printf("PRECO TOTAL = %.2f\n",precototal);
}

else {
printf("ENTRADA INVALIDA\n");
}	

return 0;
}

Exercício 31

Uma empresa concederá uma aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabla abaixo. Faça um algoritmo que leia o salário e o cargo de um funcionário e calcule o novo salário. Se o cargo do funcionário não estiver na tabela, ele deverá, receber 40% de aumento. Mostre o salário antigo , o novo salário e a diferença.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

float salario, aumento, novosalario, diferencas;
char cargo[15];

scanf("%f",&salario);
scanf("%s",cargo);

if (strcmp(cargo,"GERENTE") == 0){
aumento = 0.1 * salario;
novosalario = salario + aumento;
diferencas = novosalario - salario;
printf("ANTIGO SALARIO = %.2f\n",salario); 
printf("NOVO SALARIO = %.2f\n",novosalario);
printf("DIFERENCA ENTRE SALARIOS = %.2f\n",diferencas);
}

else if (strcmp(cargo,"ENGENHEIRO") == 0){
aumento = 0.2 * salario;
novosalario = salario + aumento;
diferencas = novosalario - salario;
printf("ANTIGO SALARIO = %.2f\n",salario); 
printf("NOVO SALARIO = %.2f\n",novosalario);
printf("DIFERENCA ENTRE SALARIOS = %.2f\n",diferencas);
}

else if (strcmp(cargo,"TECNICO") == 0){
aumento = 0.3 * salario;
novosalario = salario + aumento;
diferencas = novosalario - salario;
printf("ANTIGO SALARIO = %.2f\n",salario); 
printf("NOVO SALARIO = %.2f\n",novosalario);
printf("DIFERENCA ENTRE SALARIOS = %.2f\n",diferencas);
}

else{
aumento = 0.4 * salario;
novosalario = salario + aumento;
diferencas = novosalario - salario;
printf("ANTIGO SALARIO = %.2f\n",salario); 
printf("NOVO SALARIO = %.2f\n",novosalario);
printf("DIFERENCA ENTRE SALARIOS = %.2f\n",diferencas);
}

return 0;
}

Exercício 32

Escrever um algoritmo que lê o número de identificação, as 3 notas obtidas por um aluno nas 3 verificações e a média dos exercícios que fazem parte da avaliação. Calcular a média de aproveitamento, usando a fórmula:
MA = ( Nota1 Nota2∗2Nota3∗3ME ) / 7

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int n_inscricao;
float nota1, nota2, nota3, mediaexercicios, mediaaproveitamento;

scanf("%d",&n_inscricao);
scanf("%f",&mediaexercicios);
scanf("%f",&nota1);
scanf("%f",&nota2);
scanf("%f",&nota3);

mediaaproveitamento = ((nota1 + (nota2 * 2 )) + (( nota3 * 3 ) + mediaexercicios )) / 7;

if (mediaaproveitamento >= 9.1 && mediaaproveitamento <= 10){
printf("NUMERO DE IDENTIFICACAO = %d\n",n_inscricao);
printf("MEDIA DOS EXERCICIOS = %.2f\n",mediaexercicios);
printf("MEDIA DE APROVEITAMENTO = %.2f\n",mediaaproveitamento);
printf("CONCEITO A, ALUNO APROVADO\n");
}

else if (mediaaproveitamento >= 7.6 && mediaaproveitamento <= 9){
printf("NUMERO DE IDENTIFICACAO = %d\n",n_inscricao);
printf("MEDIA DOS EXERCICIOS = %.2f\n",mediaexercicios);
printf("MEDIA DE APROVEITAMENTO = %.2f\n",mediaaproveitamento);
printf("CONCEITO B, ALUNO APROVADO\n");
}

else if (mediaaproveitamento >= 6.1 && mediaaproveitamento <= 7.5){
printf("NUMERO DE IDENTIFICACAO = %d\n",n_inscricao);
printf("MEDIA DOS EXERCICIOS = %.2f\n",mediaexercicios);
printf("MEDIA DE APROVEITAMENTO = %.2f\n",mediaaproveitamento);
printf("CONCEITO C, ALUNO APROVADO\n");
}

else if (mediaaproveitamento >= 4.1 && mediaaproveitamento <= 6.0){
printf("NUMERO DE IDENTIFICACAO = %d\n",n_inscricao);
printf("MEDIA DOS EXERCICIOS = %.2f\n",mediaexercicios);
printf("MEDIA DE APROVEITAMENTO = %.2f\n",mediaaproveitamento);
printf("CONCEITO D, ALUNO REPROVADO\n");
}

else if (mediaaproveitamento <= 4){
printf("NUMERO DE IDENTIFICACAO = %d\n",n_inscricao);
printf("MEDIA DOS EXERCICIOS = %.2f\n",mediaexercicios);
printf("MEDIA DE APROVEITAMENTO = %.2f\n",mediaaproveitamento);
printf("CONCEITO E, ALUNO REPROVADO\n");
}

return 0;
}

Exercício 33

Fazer um algoritmo que leia os dados de um usuário de telefonia de uma empresa de telecomunicações: bairro e número completo do telefone e verifique se o número do telefone (Exemplo: 2121212) está correto, ou seja, se o prefixo (3 primeiros dígitos) é correspondente ao bairro especificado. Sabendo-se que os prefixos existem nos bairros conforme a tabela abaixo:

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

char bairro[15];
int prefixo, n1, n2, n3 ,aux , compareprefixo;

scanf("%s",bairro);
scanf("%d",&prefixo);

n1 = prefixo / 1000000;
aux = prefixo % 1000000;
n2 = aux / 100000;
aux = aux % 100000;
n3 = aux / 10000;
compareprefixo = (n1 * 100) + ( n2 * 10 ) + n3;

if ((strcmp(bairro,"OESTE") == 0 || strcmp(bairro,"VILA NOVA") == 0 || strcmp(bairro,"COIMBRA") == 0) && (compareprefixo == 223 || compareprefixo == 225 || compareprefixo ==212 || compareprefixo == 243)){

printf("O TELEFONE ESTA CORRETO\n");
}

else if ((strcmp(bairro,"CENTRO") == 0 || strcmp(bairro,"UNIVERSITARIO") == 0 || strcmp(bairro,"SUL") == 0) && (compareprefixo == 223 || compareprefixo == 224 || compareprefixo == 215 || compareprefixo == 295)) {

printf("O TELEFONE ESTA CORRETO\n");
}

  else if ((strcmp(bairro,"BUENO") == 0 || strcmp(bairro,"CAMPINAS") == 0 || strcmp(bairro,"LESTE") == 0 ) && (compareprefixo == 215 || compareprefixo == 212 || compareprefixo == 291 || compareprefixo == 268)){

printf("O TELEFONE ESTA CORRETO\n");
}

else {
printf("O TELEFONE ESTA INCORRETO\n");
}

return 0;
}

Exercício 34

Fazer um algoritmo que receba a idade e o nome de um nadador e imprima o nome, a idade e a categoria do nadador seguindo as seguintes regras:

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int idade;
char nome[20];

scanf("%d",&idade);
scanf("%s",nome);

if (idade >= 5 && idade <= 10){
printf("%s\n",nome);
printf("%d\n",idade);
printf("INFANTIL\n");
}
else if (idade >= 11 && idade <= 17){
printf("%s\n",nome);
printf("%d\n",idade);
printf("JUVENIL\n");

}
else if (idade >= 18 ){
printf("%s\n",nome);
printf("%d\n",idade);
printf("SENIOR\n");
}	

return 0;
}

Exercício 35

Elabore um algoritmo que leia o valor de dois números inteiros e a operação aritmética desejada. Calcule, então, a resposta adequada. Utilize os símbolos da tabela a seguir para ler qual operação aritmética escolhida.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int codigo;
float valorproduto, calculo;

scanf("%d",&codigo);
scanf("%f",&valorproduto);

if (codigo == 1){
calculo = valorproduto - (0.1 * valorproduto);
}

else if  (codigo == 2){
calculo = valorproduto - (0.05 * valorproduto);
}

else if  (codigo == 3){
calculo = valorproduto;
}

else if  (codigo == 4){
calculo = valorproduto + (0.1 * valorproduto);
}

printf("PRECO FINAL = %.2f\n",calculo);
return 0;
}

Exercício 36

Elabore um algoritmo que calcule o que deve ser pago por um produto considerando o preço normal de etiqueta e a escolha da condição de pagamento. Utilize os códigos da tabela para ler qual a condição de pagamento escolhido e efetuar o cálculo adequado.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int codigo;
float valorproduto, calculo;

scanf("%d",&codigo);
scanf("%f",&valorproduto);

if (codigo == 1){
calculo = valorproduto - (0.1 * valorproduto);
}

else if  (codigo == 2){
calculo = valorproduto - (0.05 * valorproduto);
}

else if  (codigo == 3){
calculo = valorproduto;
}

else if  (codigo == 4){
calculo = valorproduto + (0.1 * valorproduto);
}

printf("PRECO FINAL = %.2f\n",calculo);
return 0;
}

Exercício 37

A cidade de Perdiz das Cruzes possui um único posto telefônico. Por este posto são feitas todas as ligações interurbanas da cidade. O valor a se pago e calculado seguindo as seguintes regras:
– Taxa de R$2,00 pela ligação, R$1,00 para os 3 primeiros minutos;
– Acima do três primeiros minutos as regras são de R$1,50 para cada intervalo de 5 minutos e R$0.25 para cada minuto abaixo disto.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

char nome[20];
int tempo, aux1, aux2,novotempo;
float calculo, total, restohoras;

scanf("%s",nome);
scanf("%d",&tempo);

if (tempo <= 3){
calculo = 3;
printf("USUARIO = %s\n",nome);
printf("CONTA = %.2f\n",calculo);
}

else if (tempo > 3){
novotempo = tempo - 3;
aux1 = novotempo / 5;
aux2 = novotempo % 5;
calculo =  aux1 * 1.50;
restohoras = aux2 * 0.25;
total = 3 +  calculo + restohoras;
printf("USUARIO = %s\n",nome);
printf("CONTA = %.2f\n",total);
}
return 0;
}

Exercício 38

A Distribuidora de Combustíveis Ave Maria ira dar um aumento em função da quantidade de combustível comprado anualmente por seus clientes.  Os postos que consomem em média até 50.000 litros de combustível ao mês, terão aumento de 20%. Os postos que consomem acima desta média, 12% de aumento. A distribuidora ira fornecer o nome do posto e seu consumo anual. Calcule e escreva qual será o preço do litro de combustível para o posto, levando-se em conta que hoje a distribuidora cobra
R$1.63 por litro.

/* 
* Author: Kelvin Santiago
* Create on: 07/06/2013
*/

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int consumoanual;
char nome[10];
float valorlitro;

scanf("%s",nome);
scanf("%d",&consumoanual);

if (consumoanual <= 50000){
valorlitro = (0.2 * 1.63) + 1.63 ;
printf("PRECO REAJUSTADO = %.2f\n",valorlitro);
}

else if (consumoanual > 50000){
valorlitro = (0.12 * 1.63) + 1.63;
printf("PRECO REAJUSTADO = %.2f\n",valorlitro);
}

return 0;
}

Caso tenha alguma dúvida sobre a linguagem C ou queira deixar algum feedback deixe nos comentários abaixo.