#  > Desenvolvimento >  > Linguagens de Programação >  >  Resolução de Exercícios em Linguagem C

## nicksertecon

Estou iniciando na Linguagem C e gostaria de ajuda pra resolver os seguintes problemas:

1) Elaborar um programa para mostrar todos os números perfeitos entre 1 e 100;

2) Escrever um programa que calcule o salário semanal de um trabalhador. As entradas são o número de horas trabalhadas na semana e o valor da hora. Até 40 horas por semana não se acrescenta nenhum adicional. Acima de 40 horas e até 60 horas, há um bônus de 50% para essas horas. Acima de 60 horas há um bônus de 100% para essas horas.

3) Fazer um programa que receba do usuário o número de lados e o tamanho dos lados de um polígono regular e imprima o valor da área do polígono. O programa deve utilizar uma estrutura _switch-case_ para decidir que fórmula de cálculo utilizar, de acordo com o número de lados do polígono. Se o número de lados for diferente de 3, 4 ou 6 0 programa deve informar: "Não sei calcular a área". Áreas:
a) Triângulo: A = L * L * 1.73 / 4
b) Quadrado: A = L * L
c) Hexágono: A = 6 * L * L * 1.73 / 4


4) Uma empresa quer transmitir dados pelo telefone, mas está preocupada que seus telefones possam ser grampeados. Todos os seus dados são transmitidos como inteiros de quatro dígitos. Eles lhe pediram para escrever um programa que codifica seus dados de forma que possam ser transmitidos com mais segurança. Seu programa deve ler um inteiro de quatro dígitos e codificá-lo como segue: substitua cada dígito por [(digito mais 7) módulo 10]. Então, troque de posição o primeiro dígito com o terceiro e o segundo dígito com o quarto e imprima o inteiro codificado.

Aceito o envio de mensagens para: [email protected]

Grato

----------


## PotHix

Æ!!

nicksertecon,

Provavelmente ninguem vai te ajudar...
Provavelmente em forum nenhum...Se você está aprendendo você deve estudar e tentar fazer...Se tiver com erros e não estiver conseguindo posta seu código que o pessoal vai te dar umas dicas, agora só postar o enunciado do exercício você não vai conseguir nada alem de mensagens como a minha...

Fica aí a dica e se tiver problemas ao tentar fazer posta o código que o pessoal te dar uma ajudinha.

Há braços

----------


## candrecn

Aff.. pede ajuda pro professor.

----------


## nicksertecon

> Æ!!
> 
> nicksertecon,
> 
> Provavelmente ninguem vai te ajudar...
> Provavelmente em forum nenhum...Se você está aprendendo você deve estudar e tentar fazer...Se tiver com erros e não estiver conseguindo posta seu código que o pessoal vai te dar umas dicas, agora só postar o enunciado do exercício você não vai conseguir nada alem de mensagens como a minha...
> 
> Fica aí a dica e se tiver problemas ao tentar fazer posta o código que o pessoal te dar uma ajudinha.
> 
> Há braços


Valeu PotHix,
Vou fazer e postar aqui e espero comentários, ok!
Abraços!!!

----------


## nicksertecon

> Aff.. pede ajuda pro professor.


Certo candrecn...
Já estou pedindo ajuda deles sim!
Também colocarei aqui minhas resoluções pra comentários, ok!

----------


## nicksertecon

Fiz os exercícios e gostaria de comentários para melhorar e corrigir os mesmos!
Desde já sou grato!
1. Leitura dos números perfeitos entre 1 e 100.

int main ()
{
int x, num_perf, n=100;
while (n <=100 && n>=1)
{
for (num_perf = 0, x = 1; x < n; x++)
{
if (n % x == 0)
num_perf = num_perf + x;
}
if ( num_perf == n)
printf ("%d\n", n);
n --;
}
return EXIT_SUCESS;
}

----------


## nicksertecon

Vai mais uma questão pra comentários e melhorias...
Questão 2: Cálculo dos Salários

int main()
{
float quant=0, valor, salario, bonus;
printf("Quantidade de horas trabalhadas: \n");
scanf ("%f", &quant);
printf("Valor da hora: \n");
scanf ("%f", &valor);
salario = quant * valor;
printf ("O salário é: R$ %.2f\n", salario);

if (quant<=40)

printf ("O valor do salário semanal é de: R$ %.2f\ne não há bônus!\n");


else if (quant <=60)
{
bonus = salario * 0.5;
printf ("O bônus é de: R$ %.2f\n", bonus);
printf ("O salário total é de R$ %.2f", salario + bonus);

}
else
{
bonus = salario * 1;
printf ("O bônus é de: R$ %.2f\n", bonus);
printf ("O salário total é de R$ %.2f", salario + bonus);

}
}

----------


## nicksertecon

Mais uma questão resolvida...
Por favor comentem e ajudem a melhorar esse programa!

int main()
{
int quant_lados;
float lado;
printf ("Entre com o número de lados do polígono: \n");
scanf ("%d", &quant_lados);
printf("Qual o tamanho dos lados: \n");
scanf ("%f", &lado);

switch (quant_lados)
{
case (3):
printf ("A área desse polígono é: %2f", (lado*lado*.73)/4);
break;
case (4):
printf ("A área desse polígono é: %2f", lado*lado);
break;
case (6):
printf ("A área desse polígono é: %2f", (6*lado*lado*1.73)/4);
break;
default:
printf ("Não sei calcular a área!\n");
}

}

----------


## nicksertecon

Essa é complicada e gostaria de fazê-la de outra forma...

#include <stdio.h>
#include <stdlib.h>

#define MAX 4

int main(void)
{
int num, i;
int divisor; 
int vet[MAX]; 
int aux;

scanf("%d", &num);
divisor = 1000;

for(i = 0; i < MAX; i++){
vet[i] = ((num / divisor) + 7) % 10;
num = num % divisor;
divisor = divisor/10; 
}

for(i = 0; i < MAX - 2; i++){
aux = vet[i];
vet[i] = vet[i + 2];
vet[i + 2] = aux;
}

for(i = 0; i < 4; i++)
printf(" %d ", vet[i]);

getchar();
getchar(); 
return 0;
}

----------

