Ir ao conteúdo
  • Cadastre-se

Programa que envolve matriz em função


fantasma23
Ir à solução Resolvido por Ansi C,

Posts recomendados

Olá sou novo em estudo de algoritmos, tenho um trabalho e parei em uma parte. A programação é em C.

Não consigo alterar a matriz principal através de uma função.

Segue código se alguém puder ajudar, fico agradecido. 

 

#include <stdio.h>
#define TAM 5
 
void ativarfuncionario (int *mat[TAM][11]){
    int i,j,aux,aux2,aux3;
    printf ("Ativando funcionarios \n");
  printf ("Digite o funcionario desejado: \n");
  scanf ("%d", &aux);
  printf ("Para ativar digite 1 para desativar digite 0 para menu digite 3 \n");
  scanf ("%d", &aux2);
  if (aux2==3){
    return main();
  }
  if (aux2){
    *mat[aux][0]=1;
  }
  for (i=0;i<TAM;i++){
    for(j=0;j<11;j++){
        printf ("%d ", mat[j]);
    }
      printf ("\n");
  }
}
 
void abrirchamado (int *mat[TAM][11]){
    int i,j,aux,aux2,aux3, flag=0;
     for (i=0;i<TAM;i++){
       for(j=0;j<11;j++){
        printf ("%d ", mat[j]);
    }
    printf ("\n");
  }
  printf ("Abrindo chamado \n");
  printf ("Escolha um serviço:\n");
  printf (" 1 - Eletrecista\n");
  printf (" 2 - Mecanico\n");
  printf (" 3 - Pedreiro\n");
  printf (" 4 - Jardineiro\n");
  printf (" 5 - Azulejista\n");
  printf (" 6 - Marceneiro\n");
  printf (" 7 - Pintor\n");
  printf (" 8 - TI\n");
  printf (" 9 - Encanador\n");
  printf (" 10 - Severino\n");
  printf ("Qual servico solicitado: ");
  scanf ("%d", &aux);
  aux2=0;
   for (i=0;i<TAM;i++){
      for (j=0;j<11;j++){
         if (mat[j]==aux){
            aux2--;
            printf ("passa aqui \n");
            if (mat[0]==-1){
        printf (" Temos os seguintes funcionarios disponiveis para esta função: \n  Funcionario %d esta inativo \n "),aux;
            }
             else {
               printf (" Temos os seguintes funcionarios disponiveis para esta função: \n  Funcionario %d esta Ativo \n "),aux;
            }
         }
     else {
        aux2++;
        if (aux2==55 && i==TAM-1){
        printf ("Sem funcionarios para essa funcao.\n");
        }
    }
      }
  }
  if (aux2==55){
       return main();
  }
   printf ("escolha o funcionario a executar o trabalho:");
  fflush (stdin);
  scanf ("%d ", &aux3);
  printf ("Funcionario %d deslocado para servico \n", aux3);
 
  mat[aux3][0]=-1;
}
 
main (){
    int mat[TAM][11];
    int i,j,aux,aux2,aux3,menu=0;
 
    for (i=0;i<TAM;i++){
    for(j=0;j<11;j++){
        mat[j]=-1;
    }
  }
  for (i=0;i<TAM;i++){
    for(j=0;j<11;j++){
        printf ("%d ", mat[j]);
    }
    printf ("\n");
  }
 
    printf ("-------------------------------------------------------------------\n");
    printf ("---                              Menu                           ---\n");
    printf ("-------------------------------------------------------------------\n");
    printf ("---                    1-    Abrir chamado                      ---\n");
    printf ("---                    2-    Ativar funcionario                 ---\n");
    printf ("---                    3-    Editar habilidades de funcionario  ---\n");
    printf ("---                    4-    Listar funcionarios                ---\n");
    printf ("-------------------------------------------------------------------\n");
    scanf("%d", &menu);
    while (menu!=-1){
            if (menu==1){
                abrirchamado(mat);
            }
            if (menu==2){
                ativarfuncionario (mat[TAM][11]);
            }
    }
 
Muito obrigadoo
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...