0
I created a code to receive the: names, age, sex and salary of 10 people, a function to sort the vectors according to the highest salary, and another function to return the names of the 5 best paid women.
But when I finish filling the code with the information, it does not return anything and also does not end, it is as if it were waiting for some information.
Any idea what the mistake is?
programa
{
funcao inicio()
{
inteiro salario[10], idade[10], tamanho, z = 0, x = 0
cadeia nome[10], sexo[10]
para(inteiro a = 0 ; a < 10 ; a++){
escreva("Insira o nome do funcionário: ")
leia(nome[a])
escreva("Insira o salário arrendondado do funcionário: ")
leia(salario[a])
enquanto(salario[a] < 0){
escreva("Não é possivel ter um salario negativo, insira novamente: ")
leia(salario[a])
}
escreva("Insira a idade do funcionário: ")
leia(idade[a])
enquanto(idade[a] < 12 ou idade[a] > 99){
escreva("Insira uma idade válida (maior que 12 e menor que 99): ")
leia(idade[a])
}
escreva("Insira o sexo do funcionário: (Masculino 'M' | Feminino 'F'): ")
leia(sexo[a])
enquanto(sexo[a] != "M" e sexo[a] != "F"){
escreva("Insira 'M' para Masculino | 'F' para Feminino: ")
leia(sexo[a])
}
limpa()
}
ordenarsalarios(salario, idade, nome, sexo)
}
funcao ordenarsalarios(inteiro salario[],inteiro idade[], cadeia nome[],cadeia sexo[]){
inteiro aux, aux1
cadeia aux2, aux3
para(inteiro a = 0 ; a < 10 ; a++){
para(inteiro b = 0 ; b < 10 ; b++){
se(salario[a] > salario[b]){
aux = salario[a]
salario[a] = salario[b]
salario[b] = aux
aux1 = idade[a]
idade[a] = idade[b]
idade[b] = aux1
aux2 = nome[a]
nome[a] = nome[b]
nome[b] = aux2
aux3 = sexo[a]
sexo[a] = sexo[b]
sexo[b] = aux3
}
}
}
b(salario, idade, nome, sexo)
}
funcao b(inteiro salario[],inteiro idade[], cadeia nome[],cadeia sexo[]){
cadeia nomescrever[5]
inteiro controle = 0, k = 0
para(inteiro a = 0 ; a < 10 ; a++){
se(sexo[a] == "F"){
controle++
enquanto(controle < 5){
nomescrever[controle-1] = nome[a]
}
}
}
escreva("=======\n")
escreva("Os nomes das 5 mulheres melhores remuneradas são: \n")
para(inteiro esc = 0 ; esc < 5 ; esc++){
escreva(esc+1,"º - ",nomescrever[esc],"\n")
}
}
}
You would have to put the global variables outside the function for when you leave the function the data is saved and then have the contents on the screen.
– Edu Mendonça
The activity asks not to use global variables, as I would to pass the data without using them?
– Samuel Aguiar
Blz edits the question and puts that information there because it’s hard to guess :D
– Edu Mendonça
Creates the function to order the highest salary, and the function to return the names of the 5 women. In the main process you will take all the data and then call the functions for easy, you already put an array to save the ordering and one to save the women but well paid. When printing you print the corresponding array.
– Edu Mendonça