Estarei disponibilizando abaixo 20+ 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
Fazer um algoritmo que:
• Leia um número indeterminado de linhas contendo cada uma a idade de um indivíduo. A última linha, que não entrara nos cálculos, contem o valor da idade igual a zero.
• Calcule e escreva a idade média deste grupo de indivíduos.
/*
#include
#include
int main(){
int idade, soma, count;
float media;
soma = 0;
count = 0;
scanf("%d",&idade);
while (idade > 0){
soma += idade;
count++;
scanf("%d",&idade);
}
media = (float)soma / (float)count;
printf("IDADE MEDIA = %.2f\n",media);
return 0;
}
Exercício 2
Tem-se um conjunto de dados contendo a altura e o sexo (masculino, feminino). Fazer um algorítimo que calcule e escreva:
• A maior e a menor altura do grupo;
• A média de altura das mulheres;
• O número de homens;
#include<stdio.h>
#include<string.h>
int main(){
int x ,i,numhomens=0,nummulheres=0;
float h,media =0,somahm=0,maioraltura=0,menoraltura=0;
char sexo[12];
scanf("%d",&x);
for(i=0 ; i <x ;i++){
scanf("%f",&h);
scanf("%s",sexo);
if(strcmp(sexo,"FEMININO")==0){
nummulheres++;
somahm = h+somahm;
media =somahm/nummulheres;
}
else if(strcmp(sexo,"MASCULINO")==0){
numhomens++;
}
if(h>maioraltura){
maioraltura =h;
menoraltura = maioraltura;
}
else if(h<menoraltura){
menoraltura =h;
}
}
printf("MAIOR ALTURA = %.2f\n",maioraltura);
printf("MENOR ALTURA = %.2f\n",menoraltura);
printf("MEDIA DAS MULHERES = %.2f\n",media);
printf("NUMERO DE HOMENS = %d\n",numhomens);
return 0;
}
Exercício 3
A conversão de graus Fahrenheit para centígrados e obtido por C = 5 / 9 ( F – 32 ). Fazer um algoritmo que calcule e escreva uma tabela de centígrados em função de graus Fahrenheit, que variam de 50 a 150 de 1 em 1.
(Obs.: a fórmula dada não está errada).
/*
* Autor: Kelvin Santiago
* Criado: 20/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int fahrenheit;
float centigrados=0;
for (fahrenheit = 50; fahrenheit <= 150; fahrenheit++){
centigrados = (float)5 / 9 * (fahrenheit - 32);
printf("Valor de F = %d Valor de C = %.2f\n",fahrenheit, centigrados);
}
return 0;
}
Exercício 4
Um comerciante deseja fazer o levantamento do lucro das mercadorias que ele comercializa. Para isto, mandou digitar uma linha para cada mercadoria com o nome, preço de compra e preço de venda das mesmas. Fazer um algoritmo que:
/*
* Autor: Kelvin Santiago
* Criado: 20/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int repetir, i, menor10 = 0, entre10e20 = 0, maior20 = 0;
char nome[20];
float precocompra, precovenda, calculo, totalvenda, totalcompra, lucro, aux;
i = 0;
scanf("%d",&repetir);
while(i < repetir){
i++;
scanf("%s",nome);
scanf("%f",&precocompra);
scanf("%f",&precovenda);
totalcompra += precocompra;
totalvenda += precovenda;
lucro = totalvenda - totalcompra;
aux = precovenda - precocompra;
calculo = (float)(100 * aux) / precocompra;
if (calculo < 10){
menor10++;
}
else if (calculo >= 10 && calculo <= 20){
entre10e20++;
}
else if (calculo > 20){
maior20++;
}
}
printf("%d com lucro < 10%%\n",menor10);
printf("%d com lucro >= 10%% ou lucro <= 20%%\n",entre10e20);
printf("%d com lucro > 20%%\n",maior20);
printf("Total de compra = %.2f\n",totalcompra);
printf("Total de venda = %.2f\n",totalvenda);
printf("Lucro = %.2f\n",lucro);
return 0;
}
Exercício 5
Supondo que a população de um país A seja de ordem de 90.000.000 de habitantes com uma taxa anual de crescimento de 3% e que a população de um país B seja, aproximadamente, de 200.000.000 de habitantes com uma taxa anual de crescimento de 1,5%, fazer um algoritmo que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas essas taxas de crescimento.
/*
* Autor: Kelvin Santiago
* Criado: 20/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int anos ;
float a, b, calc1, calc2;
scanf("%f",&a);
scanf("%f",&b);
calc1 = a;
calc2 = b;
anos = 0;
while(calc1 < calc2){
calc1 = (0.03 * calc1) + calc1;
calc2 = (0.015 * calc2) + calc2;
anos++;
}
printf("ANOS = %d\n",anos);
return 0;
}
Exercício 6
Um determinado material radioativo perde metade de sua massa a cada 50 segundos. Dada a massa inicial, em gramas, fazer um algorítimo que determine o tempo necessário para que essa massa se torne menor do que 0,5 gramas. Escreva a massa inicial, a massa final e o tempo calculado em horas, minutos e segundos.
/*
* Autor: Kelvin Santiago
* Criado: 18/06/2013
*
*/
#include<math.h>
#include<stdio.h>
int main() {
float massa, aux;
int aux2, hora, minuto, segundo, tempo;
scanf("%f",&massa);
tempo = 0;
aux = massa;
while(aux >= 0.5){
aux = aux / 2;
tempo = tempo + 50;
}
hora = tempo / 3600;
aux2 = tempo % 3600;
minuto = aux2 / 60;
segundo = aux2 % 60;
printf("MASSA INICIAL = %.2f\n",massa);
printf("MASSA FINAL = %.2f\n",aux);
printf("TEMPO = %dH %dM %dS\n",hora,minuto,segundo);
return 0;
}
Exercício 7
Deseja-se fazer um levantamento a respeito da ausência de alunos a primeira prova de programação de computadores para cada uma das 14 turmas existentes. Para cada turma, e fornecido um conjunto de valores, sendo que os dois primeiros valores do conjunto correspondem a identificação da turma (A, ou B, ou C, … ) e ao número de alunos matriculados, e os demais valores deste conjunto contem o número de matrícula do aluno e a letra A ou P para o caso de o aluno esta ausente ou presente, respectivamente. Fazer um algorítimo que:
// Caso alguém desenvolva, me envie para publicar.
Exercício 8
Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isso, forneceu o sexo do entrevistado e sua resposta ( sim ou não).
/*
* Autor: Kelvin Santiago
* Criado: 20/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int qnt, cont, conth_sim = 0, conth_nao = 0, contf_sim = 0, contf_nao = 0 , totalsim = 0, totalnao = 0, contmulheres = 0, conthomens = 0;
float porc_h = 0, porc_f = 0;
char sexo[10], resposta[5];
scanf("%d",&qnt);
for (cont =0; cont<qnt; cont++ ){
scanf("%s",sexo);
scanf("%s",resposta);
if (strcmp(sexo,"MASCULINO") == 0 && strcmp(resposta,"SIM") == 0){
conth_sim++;
}
else if (strcmp(sexo,"MASCULINO") == 0 && strcmp(resposta,"NAO") == 0){
conth_nao++;
}
if (strcmp(sexo,"FEMININO") == 0 && strcmp(resposta,"SIM") == 0){
contf_sim++;
}
else if (strcmp(sexo,"FEMININO") == 0 && strcmp(resposta,"NAO") == 0){
contf_nao++;
}
}
totalsim = contf_sim + conth_sim;
totalnao = contf_nao + conth_nao;
contmulheres = contf_sim + contf_nao;
porc_f = (float)(100 * contf_sim) / contmulheres;
conthomens = conth_sim + conth_nao;
porc_h = (float)(100 * conth_nao) / conthomens;
printf("SIM = %d\n",totalsim);
printf("NAO = %d\n",totalnao);
printf("FEMININO - SIM = %.2f\n",porc_f);
printf("MASCULINO - NAO = %.2f\n",porc_h);
return 0;
}
Exercício 9
Foi feita uma pesquisa para determinar o índice de mortalidade infantil em um certo período. Fazer um algoritmo que:
• Leia inicialmente o número de crianças nascidas no período;
• Leia, em seguida, um número indeterminado de linhas, contendo, cada uma, o sexo de uma
criança morta ( masculino, feminino ) e o número de meses de vida da criança. A última linha, que não entrara nos cálculos, contém no lugar do sexo a palavra “VAZIO” ;
Determine e imprima:
• A porcentagem de crianças mortas no período;
• A porcentagem de crianças do sexo masculino mortas no período;
• A porcentagem de crianças que viveram 24 meses ou menos no período;
/*
* Autor: Kelvin Santiago
* Criado: 27/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int numerocriancas, mesesvida, contcrianca = 0, contcriancamasculino = 0, contmenos24 = 0;
float porcentagemmortas, porcentagemmasculinomortas, porcentagemmenores24;
char sexo[10];
scanf("%d",&numerocriancas);
scanf("%s",sexo);
scanf("%d",&mesesvida);
while (strcmp(sexo,"VAZIO") != 0){
contcrianca++;
if (strcmp(sexo,"MASCULINO") == 0){
contcriancamasculino++;
}
if (mesesvida <= 24){
contmenos24++;
}
scanf("%s",sexo);
scanf("%d",&mesesvida);
}
porcentagemmortas = (float) (contcrianca * 100) / numerocriancas;
porcentagemmasculinomortas = (float) (contcriancamasculino * 100) / numerocriancas;
porcentagemmenores24 = (float) (contmenos24 * 100) / numerocriancas;
printf("PORCENTAGEM DE MORTOS = %.2f\n",porcentagemmortas);
printf("PORCENTAGEM DE MASCULINOS MORTOS = %.2f\n",porcentagemmasculinomortas);
printf("PORCENTAGEM DE MENOS DE 24 MESES = %.2f\n",porcentagemmenores24);
return 0;
}
Exercício 10
Uma universidade deseja fazer um levantamento a respeito de seu concurso vestibular. Para cada curso, e fornecido o seguinte conjunto de valores:
• O código do curso;
• Número de vagas;
• Número de candidatos do sexo masculino;
• Número de candidatos do sexo feminino;
O último conjunto, para indicar fim de dados, contem o código do curso igual a zero. Fazer um algoritmo que:
• Calcule e escreva, para cada curso, o número de candidatos por vaga e a porcentagem de candidatos do sexo feminino.
• Determine o maior número de candidatos por vaga e escreva esse número juntamente com o código do curso correspondente ( supor que não haja empate );
• Calcule e escreva o total de candidatos;
/*
* Autor: Kelvin Santiago
* Criado: 27/06/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int cod_curso = 0, num_vagas = 0, cand_masc = 0, cand_fem = 0, cand_soma = 0, maiorcurso = 0;
float porc_fem = 0, cand_por_vaga = 0, maior_cand_vaga = 0, total_cand = 0;
scanf("%d",&cod_curso);
scanf("%d",&num_vagas);
scanf("%d",&cand_masc);
scanf("%d",&cand_fem);
while( cod_curso != 0){
cand_soma = cand_masc + cand_fem;
cand_por_vaga = (float) cand_soma / num_vagas ;
porc_fem = (float)(100 * cand_fem) / cand_soma;
if (cand_por_vaga > maior_cand_vaga){
maior_cand_vaga = cand_por_vaga;
maiorcurso = cod_curso;
}
else {
maior_cand_vaga = maior_cand_vaga;
}
printf("C/V = %.2f\n",cand_por_vaga);
printf("PORCENTAGEM F = %.2f\n",porc_fem);
total_cand += cand_soma;
scanf("%d",&cod_curso);
scanf("%d",&num_vagas);
scanf("%d",&cand_masc);
scanf("%d",&cand_fem);
}
printf("MAIOR NUMERO DE C/V = %.2f do curso %d\n",maior_cand_vaga,maiorcurso);
printf("TOTAL DE CANDIDATOS = %.2f\n",total_cand);
return 0;
}
Exercício 11
Deseja-se fazer uma pesquisa a respeito do consumo mensal de energia elétrica em uma determinada cidade. Para isso, são fornecidos os seguintes dados:
• Número do consumidor;
• Preço do Kw consumido;
• Quantidade de Kw consumido durante um mês;
• Código do tipo de consumidor ( residencial, industrial, comercial );
O número do consumidor igual a zero deve ser usado como flag. Fazer um algoritmo que:
Leia os dados descritos acima.
/*
* Autor: Kelvin Santiago
* Criado: 03/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int num_consumidor = 0, qnt_consumido = 0, maiorconsumo = 0, menorconsumo = 0, cod_res = 0, cod_ind = 0, cod_com = 0, i = 0;
float preco_consumo = 0, totalpagar = 0, media = 0, somaqnt_consumido = 0;
char cod_tipo_consumidor[20];
scanf("%d",&num_consumidor);
scanf("%f",&preco_consumo);
scanf("%d",&qnt_consumido);
scanf("%s",cod_tipo_consumidor);
while( num_consumidor != 0){
totalpagar = qnt_consumido * preco_consumo;
printf("NUMERO = %d\n",num_consumidor);
printf("TOTAL A PAGAR = %.2f\n",totalpagar);
if (qnt_consumido > maiorconsumo){
menorconsumo = maiorconsumo;
maiorconsumo = qnt_consumido;
}
else{
maiorconsumo = maiorconsumo;
menorconsumo = qnt_consumido;
}
if (menorconsumo == 0){
menorconsumo = maiorconsumo;
}
if (strcmp(cod_tipo_consumidor,"RESIDENCIAL") == 0){
cod_res += qnt_consumido;
}
else if (strcmp(cod_tipo_consumidor,"COMERCIAL") == 0){
cod_com += qnt_consumido;
}
else if (strcmp(cod_tipo_consumidor,"INDUSTRIAL") == 0){
cod_ind += qnt_consumido;
}
i++;
somaqnt_consumido += qnt_consumido;
media = (float)somaqnt_consumido / i;
scanf("%d",&num_consumidor);
scanf("%f",&preco_consumo);
scanf("%d",&qnt_consumido);
scanf("%s",cod_tipo_consumidor);
}
printf("MAIOR CONSUMO = %d\n",maiorconsumo);
printf("MENOR CONSUMO = %d\n",menorconsumo);
printf("CONSUMIDOR RESIDENCIAL = %d\n",cod_res);
printf("CONSUMIDOR COMERCIAL = %d\n",cod_com);
printf("CONSUMIDOR INDUSTRIAL = %d\n",cod_ind);
printf("MEDIA = %.2f\n",media);
return 0;
}
Exercício 12
Tem-se uma estrada ligando várias cidades. Cada cidade tem seu marco quilométrico. Fazer um algoritmo que:
• Leia vários pares de dados, contendo cada par de dados os valores dos marcos quilométrico, em ordem crescente, de duas cidades. O último par contém estes dois valores iguais;
• Calcule os tempos decorridos para percorrer a distância entre estas duas cidades, com as seguintes velocidades: 20, 30, 40, 50, 60, 70 e 80 Km/h, sabendo-se que:
T = E / V, onde :
• T = tempo
• E = especo
• V = velocidade
Escreva os marcos quilométricos, a velocidade e o tempo decorrido entre as duas cidades, apenas quando este tempo dor superior a 2 horas:
/*
* Autor: Kelvin Santiago
* Criado: 05/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
float marco1, marco2, tempo = 0, distancia =0;
int i = 1,velocidade = 0;
scanf("%f",&marco1);
scanf("%f",&marco2);
while ( marco1 != marco2){
printf("MARCO 1 = %.2f\n",marco1);
printf("MARCO 2 = %.2f\n",marco2);
i++;
velocidade = i * 10;
distancia = marco2 - marco1;
tempo = (float)distancia / velocidade;
while ( tempo >= 2 && i <= 8){
printf("VELOCIDADE = %dKm/h DECORREU O TEMPO DE %.1f HORAS\n",velocidade,tempo);
i++;
velocidade = i * 10;
distancia = marco2 - marco1;
tempo = (float)distancia / velocidade;
}
i = 1;
scanf("%f",&marco1);
scanf("%f",&marco2);
}
return 0;
}
Exercício 13
Uma empresa decidiu fazer um levantamento em relação aos candidatos que se apresentarem para preenchimento de vagas no seu quadro de funcionários, utilizando processamento eletrônico.
/*
* Autor: Kelvin Santiago
* Criado: 05/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int qnt = 0, numero, i,idade, m_inf_35anos = 0, masc_exp= 0, qnt_cand_masc = 0, qnt_cand_fem = 0, qnt_mas_45anos = 0, menoridade_f = 0;
float mediacand_mas = 0;
char sexo[10], experiencia[10];
scanf("%d",&qnt);
for(i = 0; i < qnt; i++){
scanf("%d",&numero);
scanf("%d",&idade);
scanf("%s",sexo);
scanf("%s",experiencia);
if(strcmp(sexo,"FEMININO")==0){
qnt_cand_fem++;
if(strcmp(experiencia,"SIM")==0){
if (idade < 35){
m_inf_35anos++;
}
if (qnt_cand_fem == 1){
menoridade_f = idade;
}
else if (idade < menoridade_f){
menoridade_f = idade;
}
}
}
else{
qnt_cand_masc++;
if (strcmp(experiencia,"SIM")== 0){
masc_exp++;
}
if(idade > 45){
qnt_mas_45anos++;
}
}
}
mediacand_mas = ((float) masc_exp / qnt_cand_masc) * 100;
printf("MULHERES INSCRITAS COM EXPERIENCIA E IDADE MENOR QUE 35 ANOS = %d\n",m_inf_35anos);
printf("CANDIDATOS MASCULINOS = %d\n",qnt_cand_masc);
printf("CANDIDATOS FEMININOS = %d\n",qnt_cand_fem);
printf("MEDIA DE HOMENS COM EXPERIENCIA = %.2f\n",mediacand_mas);
printf("HOMENS COM MAIS DE 45 ANOS = %d\n",qnt_mas_45anos);
printf("MENOR IDADE DE MULHER COM EXPERIENCIA = %d\n",menoridade_f);
return 0;
}
Exercício 14
Uma companhia de teatro planeja dar uma série de espetáculos. A direção calcula que, a R$ 5,00 o ingresso, serão vendidos 120 ingressos, e as despesas montarão em R$ 200,00. A uma diminuição de R$ 0,50 no preço dos ingressos espera-se que haja um aumento de 26 ingressos vendidos. Fazer um algoritmo que escreva uma tabela de valores do lucro esperado em função do preço do ingresso, fazendo-se variar este preço de R$ 5,00 a R$ 1,00 de R$ 0,50 em R$ 0,50. Escreva, ainda o lucro máximo esperado, o preço e o número de ingressos correspondentes.
/*
* Autor: Kelvin Santiago
* Criado: 09/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
float lucroesperado, i, ingressos, lucromaximo = 0, dopreco = 0, totalingressos = 0;
ingressos = 120;
lucroesperado = (ingressos * 5.0 - 200);
for (i = 5 ; i >= 1.0; i--){
if (i == 5.0){
printf("PRECO = %.1f LUCRO ESPERADO = %.2f\n",i,lucroesperado);
}
else{
ingressos += 26;
lucroesperado = (i * ingressos) - 200;
printf("PRECO = %.1f LUCRO ESPERADO = %.2f\n",i,lucroesperado);
}
if ( lucromaximo == 0){
lucromaximo = lucroesperado;
dopreco = i;
totalingressos = ingressos;
}
else if (lucroesperado > lucromaximo){
lucromaximo = lucroesperado;
dopreco = i;
totalingressos = ingressos;
}
i = i + 0.5;
}
printf("LUCRO MAXIMO = %.2f DO PRECO = %.2f NUMERO DE INGRESSOS VENDIDOS = %.2f\n",lucromaximo,dopreco,totalingressos);
return 0;
}
Exercício 15
A comissão organizadora de um rallye automobilístico decidiu apurar os resultados da competição através de um processamento eletrônico. Um dos algoritmo necessários para a classificação das equipes concorrentes e o que emite uma listagem geral do desempenho das equipes, atribuindo pontos segundo determinadas normas. O algoritmo devera:
/*
* Autor: Kelvin Santiago
* Criado: 09/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int numeroinscricao,insc_vencedora = 0;
float num1, num2, num3,tempopadrao1,tempopadrao2,tempopadrao3, etapa1, etapa2, etapa3, ponto1 = 0, ponto2 = 0, ponto3= 0, soma = 0, equipevencedora = 0;
scanf("%f",&tempopadrao1);
scanf("%f",&tempopadrao2);
scanf("%f",&tempopadrao3);
scanf("%d",&numeroinscricao);
scanf("%f",&num1);
scanf("%f",&num2);
scanf("%f",&num3);
while ( numeroinscricao != 9999){
etapa1 = tempopadrao1 - num1;
etapa2 = tempopadrao2 - num2;
etapa3 = tempopadrao3 - num3;
if (etapa1 < 3){
ponto1 = 100;
}
else if (etapa1 >= 3 && etapa1 <= 5){
ponto1 = 80;
}
else{
ponto1 = 80 - ((etapa1 - 5) / 5);
}
if (etapa2 < 3){
ponto2 = 100;
}
else if (etapa2 >= 3 && etapa2 <= 5){
ponto2 = 80;
}
else{
ponto2 = 80 - ((etapa2 - 5) / 5);
}
if (etapa3 < 3){
ponto3 = 100;
}
else if (etapa3 >= 3 && etapa3 <= 5){
ponto3 = 80;
}
else{
ponto3 = 80 - ((etapa3 - 5) / 5);
}
soma = ponto1 + ponto2 + ponto3;
if (equipevencedora == 0){
equipevencedora = soma;
insc_vencedora = numeroinscricao;
}
else if(soma > equipevencedora){
equipevencedora = soma;
insc_vencedora = numeroinscricao;
}
printf("NUMERO DE INSCRICAO = %d\n",numeroinscricao);
printf("PONTOS ETAPA 1 = %.2f PONTOS\n",ponto1);
printf("PONTOS ETAPA 2 = %.2f PONTOS\n",ponto2);
printf("PONTOS ETAPA 3 = %.2f PONTOS\n",ponto3);
printf("TOTAL DE PONTOS = %.2f\n",soma);
scanf("%d",&numeroinscricao);
scanf("%f",&num1);
scanf("%f",&num2);
scanf("%f",&num3);
}
printf("EQUIPE VENCEDORA = %d COM O TOTAL DE PONTOS DE = %.2f\n",insc_vencedora,equipevencedora);
return 0;
}
Exercício 16
Numa certa loja de eletrodoméstico, o comerciário encarregado da seção de televisores recebe, mensalmente, um salario fixo mais comissão. Essa comissão e calculada em relação ao tipo e ao numero de televidores vendidos por mês, obedecendo a tabela abaixo:
/*
* Autor: Kelvin Santiago
* Criado: 09/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int n_empregados, n_inscricao, num_tele_cor, num_tele_preto, cont;
float salario_fixo, salariobruto =0, totalcor, totalpreto, desconto, salarioliquido;
scanf("%d",&n_empregados);
for(cont = 0; cont < n_empregados; cont++){
scanf("%d",&n_inscricao);
scanf("%f",&salario_fixo);
scanf("%d",&num_tele_cor);
scanf("%d",&num_tele_preto);
if (num_tele_cor >= 10){
totalcor = num_tele_cor * 50.00;
}
else{
totalcor = num_tele_cor * 5.00;
}
if (num_tele_preto >= 20){
totalpreto = num_tele_preto * 20.00;
}
else{
totalpreto = num_tele_preto * 2.00;
}
desconto = 0.08 * salario_fixo;
printf("DESCONTO %.2f\n",desconto);
salariobruto = (salario_fixo + totalpreto + totalcor) - desconto;
printf("NUMERO DE INSCRICAO = %d\n",n_inscricao);
printf("SALARIO BRUTO = %.2f\n",salariobruto);
if (salariobruto >= 500){
salarioliquido = salariobruto - (0.15 * salariobruto ) ;
}
else {
salarioliquido = salariobruto;
}
printf("SALARIO LIQUIDO = %.2f\n",salarioliquido);
}
return 0;
}
Exercício 17
Numa fábrica trabalham homens e mulheres divididos em três classes com os respectivos salários:
A – os que fazem ate 30 pecas por mês, salário mínimo;
B – os que fazem de 31 a 35 pecas por mês, salário mínimo e mais 3% do salário mínimo por peca acima das 30 iniciais;
C – os que fazem mais de 35 pecas por mês, salário mínimo e mais 5% do salário mínimo por peca acima das 30 iniciais;
/*
* Autor: Kelvin Santiago
* Criado: 09/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
// Definindo Variaveis
int numerooper, qntpecas, somapecas = 0, contmasculino_a = 0, contfeminino_a = 0, contmasculino_b = 0, contfeminino_b = 0, contmasculino_c = 0, contfeminino_c = 0, pecas_a_masc = 0, pecas_a_fem = 0,pecas_b_masc = 0, pecas_b_fem = 0,pecas_c_masc = 0, pecas_c_fem = 0, maiorsalario=0;
float salario = 0, somasalarios = 0, mediapeca_a_mas = 0, mediapeca_b_mas = 0,mediapeca_c_mas = 0,mediapeca_a_fem = 0, mediapeca_b_fem = 0,mediapeca_c_fem = 0, verificavalor = 0;
char sexo[10];
// Lendo Variaveis
scanf("%d",&numerooper);
scanf("%d",&qntpecas);
scanf("%s",sexo);
// Iniciando Laco de repeticao com flag
while (numerooper != 0){
// Iniciando condicionais
if (qntpecas <= 30){
salario = 500.00;
printf("SALARIO OPERARIO = %.2f\n",salario);
if (strcmp(sexo,"MASCULINO") == 0){
contmasculino_a++;
pecas_a_masc += qntpecas;
}
else {
contfeminino_a++;
pecas_a_fem += qntpecas;
}
}
else if(qntpecas >= 31 && qntpecas <= 35){
salario = 500.00 +((qntpecas - 30) * (0.03 * 500));
printf("SALARIO OPERARIO = %.2f\n",salario);
if (strcmp(sexo,"MASCULINO") == 0){
contmasculino_b++;
pecas_b_masc += qntpecas;
}
else {
contfeminino_b++;
pecas_b_fem += qntpecas;
}
}
else if(qntpecas > 35 ){
salario = 500.00 +((qntpecas - 30) * (0.05 * 500));
printf("SALARIO OPERARIO = %.2f\n",salario);
if (strcmp(sexo,"MASCULINO") == 0){
contmasculino_c++;
pecas_c_masc += qntpecas;
}
else {
contfeminino_c++;
pecas_c_fem += qntpecas;
}
}
// Verificando maior salario
if (maiorsalario == 0){
maiorsalario = numerooper;
verificavalor = salario;
}
if (verificavalor > salario){
maiorsalario = maiorsalario;
}
else if(verificavalor < salario){
maiorsalario = numerooper;
verificavalor = salario;
}
//Somando Salarios
somasalarios += salario ;
//Somando Pecas
somapecas += qntpecas;
// Calculando Medias Masculinas por Peca
mediapeca_a_mas = (float)pecas_a_masc / contmasculino_a;
mediapeca_b_mas = (float)pecas_b_masc / contmasculino_b;
mediapeca_c_mas = (float)pecas_c_masc / contmasculino_c;
// Calculando Medias Femininas por Peca
mediapeca_a_fem = (float)pecas_a_fem / contfeminino_a;
mediapeca_b_fem = (float)pecas_b_fem / contfeminino_b;
mediapeca_c_fem = (float)pecas_c_fem / contfeminino_c;
// Lendo Variaveis
scanf("%d",&numerooper);
scanf("%d",&qntpecas);
scanf("%s",sexo);
}
printf("FOLHA MENSAL FABRICA = %.2f\n",somasalarios);
printf("TOTAL DE PECAS = %d\n",somapecas);
printf("MEDIA PECA HOMENS CLASSE A = %.2f\n",mediapeca_a_mas);
printf("MEDIA PECA HOMENS CLASSE B = %.2f\n",mediapeca_b_mas);
printf("MEDIA PECA HOMENS CLASSE C = %.2f\n",mediapeca_c_mas);
printf("MEDIA PECA MULHERES CLASSE A = %.2f\n",mediapeca_a_fem);
printf("MEDIA PECA MULHERES CLASSE B = %.2f\n",mediapeca_b_fem);
printf("MEDIA PECA MULHERES CLASSE C = %.2f\n",mediapeca_c_fem);
printf("NUMERO OPERARIO COM MAIOR SALARIO = %d\n",maiorsalario);
return 0;
}
Exercício 18
Uma determinada fábrica de rádios possui duas linhas de montagem distintas: standard e luxo. A linha de montagem standard comporta um máximo de 24 operários. Cada rádio standard da um lucro de X reais e gasta um homem dia para sua confecção. A linha de montagem luxo comporta no máximo 32 operários, cada rádio luxo da um lucro de Y reais e gasta 2 homens dia para para sua confecção.
A fábrica possui 40 operários. O mercado é capaz de absorver toda a produção e o fabricante deseja saber qual esquema de produção a adotar de modo a maximizar seu lucro diário. Fazer um algoritmo que leia os valores de X e Y e escreva, para esse esquema de lucro máximo, o número de operários na linha standard e na linha luxo, o número de rádios standard e luxo produzidos, e o lucro.
Adote o valor do rádio standard igual a 50 reais, o de luxo igual a 80 reais e adote que o preço de custo é igual a 20 e 50 reais consecutivos.
/*
* Autor: Kelvin Santiago
* Criado: 09/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int x, y, qntradio_standart, qntradio_luxo, qntoper_standart, qntoper_luxo;
float lucrostandart, lucroluxo;
scanf("%d",&x);
scanf("%d",&y);
lucrostandart = x;
lucroluxo = y;
qntradio_standart = x / 30;
qntradio_luxo = y /30;
qntoper_standart = qntradio_standart * 1;
qntoper_luxo = qntradio_luxo * 2;
printf("O lucro do radio standard = %.2f\n", lucrostandart);
printf("O lucro do radio luxo = %.2f\n", lucroluxo);
printf("A quantidade de radio standard = %d\n", qntradio_standart);
printf("A quantidade de radio luxo = %d\n", qntradio_luxo);
printf("A quantidade de operarios utilizados na producao do radio standard = %d\n", qntoper_standart);
printf("A quantidade de operarios utilizados na producao do radio luxo = %d\n", qntoper_luxo);
return 0;
}
Exercício 19
Fazer um algoritmo para calcular o número de dias decorridos entre duas datas ( considerar também a ocorrência de anos bissextos ), sabendo-se que:
• Cada par de datas é lido numa linha, a última linha contém o número do dia negativo;
• A primeira data na linha é sempre a mais antiga;
• O ano está digitado com quatro dígitos;
• Um ano sera bissexto se for divisível por 400, ou se for divisível por 4 e não o for por 100;
// Se você fizer este exercício, por favor nos envie para que possamos publica-lo.
Exercício 20
Sejam P( x1, y1) e Q( x2, y2) dois pontos quaisquer do plano. A sua distância é dada por:
d=x2−x1)² + (y2−y1)²
Escrever um algoritmo que, lendo várias linhas onde cada uma contém as coordenadas dos dois pontos, escreva para cada par de pontos lidos a sua distância. A última linha contém as coordenadas x1 , x2 , y1 , y2 igual a zero.
/*
* Autor: Kelvin Santiago
* Criado: 18/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int x1,x2,y1,y2;
float distancia;
scanf("%d",&x1);
scanf("%d",&y1);
scanf("%d",&x2);
scanf("%d",&y2);
while(x1 != 0 || x2 != 0 || y1 != 0 || y2 != 0){
distancia = (float)sqrt(pow((x2-x1),2) + pow((y2-y1),2));
printf("A distancia entre (%d,%d) e (%d,%d) = %.2f\n",x1,y1,x2,y2,distancia);
scanf("%d",&x1);
scanf("%d",&y1);
scanf("%d",&x2);
scanf("%d",&y2);
}
return 0;
}
Exercício 21
O número de quatro algorismos, 3025 possui a seguinte característica:
30 + 25 = 55
55² = 3025
Fazer um algoritmo para um programa que pesquise e imprima todos os números de quatro algorismos, que apresentam tal característica. Adote para teste, 2000 para o primeiro número.
/*
* Autor: Kelvin Santiago
* Criado: 18/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int i, soma, parte1, parte2, elevacao;
for( i =2000; i < 10000; i++){
parte1 = i /100;
parte2 = i %100;
soma = parte1 + parte2;
elevacao = pow(soma,2);
if( elevacao == i){
printf("%d\n",i);
}
}
return 0;
}
Exercício 22
Capicuas são números que tem o mesmo valor, se lidos da esquerda para a direita ou da direita para a esquerda. Ex.: 44, 323, etc. Fazer um algoritmo que determine e escreva todos os números inteiros menores que 10.000 que são quadrados perfeitos e capicuas ao mesmo tempo.
/*
* Autor: Kelvin Santiago
* Criado: 18/07/2013
*/
#include<math.h>
#include<stdio.h>
#include<string.h>
int main(){
int i, ver_inteiro, d1, d2, d3, d4, restante, verifica;
float ver_float,raiz, aux;
for (i = 121; i < 10000; i++){
raiz = sqrt(i);
ver_float = raiz;
ver_inteiro = raiz;
aux = ver_float - ver_inteiro;
if (i /100 != 0){
d1 = i /100;
restante = i % 100;
d2 = restante / 10;
d3 = restante % 10;
verifica = (d3 * 100) + (d2 * 10) + d1;
}
else if (i / 1000 != 0){
d1 = i / 1000;
restante = d1 % 1000;
d2 = restante / 100;
restante = restante % 100;
d3 = restante / 10;
d4 = restante % 10;
verifica = (d4 * 1000) + (d3 * 100) + (d2 * 10) + d1;
}
if( (verifica == i) && (aux == 0)){
printf("%d\n",i);
}
}
return 0;
}
Caso tenha alguma dúvida sobre a linguagem C ou queira deixar algum feedback deixe nos comentários abaixo.
