How to pass the registration code as a function parameter?

0

I have to sort the salaries of a company's employees in a decreasing way. Entry, Enrollment, salary if you want to continue Exit: Salaries in descending order. The error that is appearing is the following:

  

[Warning] passing argument 1 of 'le_valida_matricula' makes integer   from pointer without a cast

Code:

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

/* 
Lucas Correia Barros Lauriano
Síntese
Objetivo: Ordenar de forma decrescente os salários dos funcionarios de uma empresa
Entrada: Matrícula, salário, se deseja continuar
Saída: Salários em ordem decrescente

*/


char valida_caracter(char opc1, char opc2, char titulo[]);
int le_valida_matricula(int mat, char titulo[]);

int main() {

    char matricula_func[0];
    float salario_func[0];
    char opc;



    do{


        matricula_func = le_valida_matricula(matricula_func, "Informe a matricula do funcionario: ");
        fflush(stdin);
        printf("Informe o salario do funcionario:");
        scanf("%d", &salario_func);



        opc = valida_caracter('s', 'n', "Pressione S para continuar");

        system("cls");
    }while(opc == 's');

    return 0;
}

char valida_caracter(char opc1, char opc2, char titulo[]){
    char opc;
    do{ 
    printf(titulo);
    opc = getch();
    fflush(stdin);
    opc = tolower(opc);

    if(opc !='s' && opc!= 'n'){
        system("cls");
        printf("Opcao invalida! Digite %c ou %c que sao opcoes valida\n", opc1, opc2);
    }
    }while(opc !='s' && opc!= 'n');

    return opc;
}

int le_valida_matricula(int mat, char titulo[]){

    int aux;

    do{
        printf(titulo);
        scanf("%d", &aux);

        if(aux == '
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 
Lucas Correia Barros Lauriano
Síntese
Objetivo: Ordenar de forma decrescente os salários dos funcionarios de uma empresa
Entrada: Matrícula, salário, se deseja continuar
Saída: Salários em ordem decrescente

*/


char valida_caracter(char opc1, char opc2, char titulo[]);
int le_valida_matricula(int mat, char titulo[]);

int main() {

    char matricula_func[0];
    float salario_func[0];
    char opc;



    do{


        matricula_func = le_valida_matricula(matricula_func, "Informe a matricula do funcionario: ");
        fflush(stdin);
        printf("Informe o salario do funcionario:");
        scanf("%d", &salario_func);



        opc = valida_caracter('s', 'n', "Pressione S para continuar");

        system("cls");
    }while(opc == 's');

    return 0;
}

char valida_caracter(char opc1, char opc2, char titulo[]){
    char opc;
    do{ 
    printf(titulo);
    opc = getch();
    fflush(stdin);
    opc = tolower(opc);

    if(opc !='s' && opc!= 'n'){
        system("cls");
        printf("Opcao invalida! Digite %c ou %c que sao opcoes valida\n", opc1, opc2);
    }
    }while(opc !='s' && opc!= 'n');

    return opc;
}

int le_valida_matricula(int mat, char titulo[]){

    int aux;

    do{
        printf(titulo);
        scanf("%d", &aux);

        if(aux == '%pre%')
            {
                printf("Deve ser diferente de vazio!");
            }

    }while(aux == '%pre%');

    return aux; 
}
') { printf("Deve ser diferente de vazio!"); } }while(aux == '%pre%'); return aux; }
    
asked by anonymous 28.03.2018 / 22:14

1 answer

0

First you were trying to pass a variable as a parameter without having given a value to it, and was making itself receive what the function returned, here:   matricula_func = le_valida_matricula(matricula_func, "Informe a matricula do funcionario: ");

Second, you were not defining which position of the array wanted to assign a value. I took the liberty of creating a% count% variable. And I put the call of the function i without dependency of parameters, I did what you were doing however within the function itself.

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

/* 
Lucas Correia Barros Lauriano
Síntese
Objetivo: Ordenar de forma decrescente os salários dos funcionarios de uma empresa
Entrada: Matrícula, salário, se deseja continuar
Saída: Salários em ordem decrescente

*/


char valida_caracter(char opc1, char opc2, char titulo[]){
    char opc;
    do{ 
    printf(titulo);
    opc = getch();
    fflush(stdin);
    opc = tolower(opc);

    if(opc !='s' && opc!= 'n'){
        system("cls");
        printf("Opcao invalida! Digite %c ou %c que sao opcoes valida\n", opc1, opc2);
    }
    }while(opc !='s' && opc!= 'n');

    return opc;
}

int le_valida_matricula(){

    int aux;

    do{
        printf("Qual a matricula do funcionario?");
        scanf("%d", &aux);

        if(aux == '
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 
Lucas Correia Barros Lauriano
Síntese
Objetivo: Ordenar de forma decrescente os salários dos funcionarios de uma empresa
Entrada: Matrícula, salário, se deseja continuar
Saída: Salários em ordem decrescente

*/


char valida_caracter(char opc1, char opc2, char titulo[]){
    char opc;
    do{ 
    printf(titulo);
    opc = getch();
    fflush(stdin);
    opc = tolower(opc);

    if(opc !='s' && opc!= 'n'){
        system("cls");
        printf("Opcao invalida! Digite %c ou %c que sao opcoes valida\n", opc1, opc2);
    }
    }while(opc !='s' && opc!= 'n');

    return opc;
}

int le_valida_matricula(){

    int aux;

    do{
        printf("Qual a matricula do funcionario?");
        scanf("%d", &aux);

        if(aux == '%pre%')
            {
                printf("Deve ser diferente de vazio!");
            }

    }while(aux == '%pre%');

    return aux; 
}

int main() {

    char matricula_func[0];
    float salario_func[0];
    char opc;
    int i=0;



    do{


        matricula_func[i] = le_valida_matricula();
        fflush(stdin);
        printf("Informe o salario do funcionario:");
        scanf("%d", &salario_func);
        i++;


        opc = valida_caracter('s', 'n', "Pressione S para continuar");

        system("cls");
    }while(opc == 's');

    return 0;
}
') { printf("Deve ser diferente de vazio!"); } }while(aux == '%pre%'); return aux; } int main() { char matricula_func[0]; float salario_func[0]; char opc; int i=0; do{ matricula_func[i] = le_valida_matricula(); fflush(stdin); printf("Informe o salario do funcionario:"); scanf("%d", &salario_func); i++; opc = valida_caracter('s', 'n', "Pressione S para continuar"); system("cls"); }while(opc == 's'); return 0; }
    
29.03.2018 / 04:37