Exercícios resolvidos em linguagem C (Lista C)

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.