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.