structfuncionariofunc[4];for(inti=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(inti=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>intmain(){structfuncionario{charnome[50];charsetor[20];doublesalario;intidade;intbonus;};structfuncionariofunc[4];for(inti=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(inti=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);}return0;}
P
programador12251 like
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.