Faça um programa que receba 4 funcionarios, tendo nome, idade, setor e salario.
Atribua 10% de bonus para os maiores de 50 anos e imprima os cadastros
Eu fiz mas tem algo errado
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int main() {
struct funcionario{
char nome[50];
char setor[20];
double salario;
int idade;
int bonus;
};
struct funcionario func[4];
for(int i = 0; i<4; i++){
printf("Digite o %d nome:\n",(i+1));
scanf("%s",&func[i].nome);
printf("Digite sua idade\n");
scanf("%d",&func[i].idade);
if (i>50)
salario=salario + salario*0.10;
bonus=salario*10/100;
printf("Digite o salario:\n");
scanf("%lf",&func[i].salario);
printf("Digite o setor:\n");
scanf("%s",&func[i].setor);
}
printf("Os funcionarios cadastrados foram:\n");
for(int i = 0; i<4 ; i++)
printf("Nome: %s;\t\t ;Idade:%d \t\t Setor: %s;\t\tSalario: %9.2f;\n",
func[i].nome,func[i].idade, func[i].setor, func[i].salario);
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
struct funcionario
{
char nome[50];
char setor[20];
double salario;
int idade;
int bonus;
};
struct funcionario func[4];
for(int i = 0; i<4; i++)
{
printf("Digite o %d nome:\n",(i+1));
scanf("%s",func[i].nome);
printf("Digite sua idade\n");
scanf("%d",&func[i].idade);
printf("Digite o salario:\n");
scanf("%lf",&func[i].salario);
printf("Digite o setor:\n");
scanf("%s",func[i].setor);
if (func[i].idade>50)
{
func[i].salario+=func[i].salario*0.10;
func[i].bonus=func[i].salario*10/100;
}
}
printf("Os funcionarios cadastrados foram:\n");
for(int i = 0; i<4 ; i++)
{
printf("\nNome : %s\n",func[i].nome);
printf("Idade : %d\n",func[i].idade);
printf("Setor : %s\n",func[i].setor);
printf("Salario : %9.2f",func[i].salario);
}
return 0;
}
Tem varios erros no seu código.
(1) Na linha if (i>50)
o código dentro do if
nunca será executado pois a variavel ‘i’ nunca será maior que 50, já que seu looping só vai até 3, for(int i = 0; i<4 ; i++)
.
(2) Nesta linha scanf("%s",&func[i].nome);
não é preciso colocar o &
antes de func[i].nome
pois o atributo nome
da struct funcionario é um vetor de char e vetores na linguagem C são passados sempre por referência.
1 curtida