Construa um programa EM C que leia o salário de 8 pessoas e armazene-os.
Caso receba um número negativo ou igual a zero, ignore tal valor e peça para o usuário inserir um valor válido.
Em seguida, calcule e armazene quanto ficaria cada salário se houvesse um reajuste (aumento) de 8%.
Depois, imprima uma listagem numerada com o salário inicial e o novo salário com o reajuste.
URGENTEEEE
Soluções para a tarefa
No código usamos 2 arrays de números do tipo float para guardar o salário inicial e o salário reajustado de cada pessoa.
Usamos um for-loop para rodar ler um número do usuário e salvar os salários.
Para ler a entrada do usuário, usamos um while-loop com a função scanf e validamos o input do usuário.
Para reajustar o preço, usamos uma conta matemática simples. REAJUSTE = SALARIO + ((AUMENTO / 100) * SALARIO)
Código:
#include <stdio.h>
// Quantidade de aumento em porcentagem
// Deixe sempre com um "." (Exemplo: 8.0) para a variável ser um float.
#define AUMENTO 8.0
int main() {
// Guardaremos o alário inicial de todos os trabalhadores em um array, faremos o mesmo com os novos salários.
float salarios[8], reajustados[8];
// Usando um for loop para lermos o salário de 8 pessoas
for(int i = 0;i < 8;i++) {
float salario;
printf("Insira o salário da pessoa %d: ", i + 1);
while(scanf("%f", &salario)!=1 && salario < 1) {
// Salário inválido ou menor que 1.
printf("%f\n", salario);
if(!salario || salario < 1) {
printf("Insira um valor válido.\n");
// Limpar buffer do stdin
printf("Insira o salário da pessoa %d: ", i + 1);
while((getchar()) != '\n');
continue;
} else {
break;
}
}
// Guardando salário inicial
salarios[i] = salario;
// Guardando salário com reajuste
reajustados[i] = salario + (float)((float)(AUMENTO / 100) * salario);
}
printf("\nCom aumento de %d%%, os novos salários são:\n", AUMENTO);
for(int i = 0;i < 8;i++) {
printf("Pessoa %d: %.2f -> %.2f\n", i + 1, salarios[i], reajustados[i]);
}
return 0;
}
Código compilado com gcc 11.1.0 no sistema operacional Arch Linux.
Se ajudei, por favor, maque a resposta como melhor resposta.
Também estou deixando o código em formato de texto no anexo dessa resposta.