Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por jeredy
      Tenho um trabalho da faculdade e não consigo fazer rodar o programa corretamente.
      Quando eu coloco o cpf, na hora de imprimir sai um número aleatório. Creio que possa ser por falta de memória pois se coloco um número menor ele sai certo, porém não consigo adicionar memória em cpf.
       
      Obs: ainda não fiz a parte dos menores e da medial do grupo e a parte de imprimir em tabela pois não consegui fazer funcionar nem um básico mas se alguém souber essa parte também e puder me ajudar agradeço!!
       
      #include <stdio.h> #include <stdlib.h> main(){ struct funcionarios{ int *cpf; char nome[30]; int nascimento; float salario; }; int aux=0; //para testar se for 0 antes de armazenar o cpf struct funcionarios *func; int qtdLeitura=0, i=0, cont=0; func = ((struct funcionarios *) (malloc(sizeof(struct funcionarios) * 1))); while(1){ printf("Digite o cpf %d: ", i+1); scanf("%d", &aux); if(aux!= 0){ func.cpf = aux; fflush(stdin); } else{ break; } if(func != NULL){ qtdLeitura++; func = ((struct funcionarios *) realloc(func, sizeof(struct funcionarios) *(qtdLeitura+1))); } printf("Digite o nome %d: ", i+1); scanf("%s", func.nome); printf("Digite o nascimento %d: ",i+1); scanf("%d", &func.nascimento); printf("Digite o salario %d: ",i+1); scanf("%f", &func.salario); cont++; i++; } printf("\n\n"); for(i=0;i<cont;i++){ printf("Cpf %d:%d \n",i+1, func.cpf); printf("Nome %d: %s\n",i+1, func.nome); printf("Nascimento %d: %d\n",i+1, func.nascimento); printf("Salario %d: %.2f\n",i+1, func.salario); } }
       

    • Por Edwar Saliba Jr.
      Boa tarde Senhores(as)!
       
      O código-fonte a seguir é a miniaturização de um problema maior no qual estou trabalhando.
       
      Preciso imprimir os valores do vetor gerado pela função "fazVetor", na função "main".
       
      Porém, para que o código se assemelhe ao problema real no qual estou trabalhando, existem duas restrições que devem ser respeitadas. Estas estão comentadas no código a seguir.
       
      #include <stdio.h> #include <stdlib.h> #define TAM 3 int fazVetor(int **vet){ int *array = malloc(sizeof(int) * TAM); array[0] = 4; array[1] = 7; array[2] = 8; /* nesta função somente a linha a seguir pode ser alterada. */ *vet = array; } int main() { int **qq; /* Na função main, somente a linha a seguir NÃO PODE ser alterada. */ fazVetor(&qq); printf("\n--==[Valores do Vetor]==--\n\n"); for(int i = 0; i < TAM; i++){ printf(" %d", (qq[i])); } printf("\n\n"); return 0; }  
      O único objetivo é a impressão dos valores do vetor na função "main". Respeitadas as devidas restrições.
       
      De antemão, muito obrigado!
       
       
      Edwar Saliba Jr.
    • Por Guiibarbosaa
      Olá galera, bom dia !
       
      Estou desenvolvendo um trabalho para faculdade onde armazeno e exibo os resultados de ordenação de diversos algoritmos, sendo numero de comparações, trocas e tempo.
      Tenho tudo pronto e escrito, ou seja, o escopo do trabalho esta Ok, falta implementar o resto dos algoritmos.
       
      Consegui quase tudo com a ajuda de colegas de outro fórum, porém estou com um erro que não consigo soluciona-lo, se alguém puder me dar uma ideia do que esta acontecendo fico grato.
       
      1- Aqui eu tenho minha lista global de registros que ira armazenar os resultados de ordenação:
       
      typedef struct{
          int numcomp;
          int numtrocas = 0;
      }ESTATISTICAS;
       
      2-  Como exemplo o algoritmo bubble sort recebendo os valores por referencia:
       
      void bubbleSort(int vet[], int num, ESTATISTICAS* estatisticas){

          int i, continua, aux, fim = num;
                  do{
                      continua = 0;
              
                      for(i = 0; i < fim -1; i++ ){
                      
                          estatisticas->numcomp++;    
                          if(vet > vet[i+1]){
                              aux = vet;
                              vet = vet[i+1];
                              vet[i+1] = aux;
                              estatisticas->numtrocas++;
                              continua = 1;
                          }
                      }
                      fim--;
                  }while(continua != 0);
      }
       
       
      3- e aqui a declaração da lista e a chamada da função de ordenação com a exibição dos valores armazenados:
       
      int *ptr;
                          ptr = geraVetor(vetor1);
                          //imprimeVetor(ptr, vetor1);
                      
                              
                          ESTATISTICAS* estatisticas = (ESTATISTICAS*) malloc(sizeof(ESTATISTICAS)); 
                          
                          clock_t  start, end;
              
                          start = clock();
                          bubbleSort(ptr,vetor1, estatisticas);
                          end = clock();
                          printf("\n\nTROCAS: %d", estatisticas->numcomp);
                          printf("\n\nTROCAS: %d", estatisticas->numtrocas);
       
      4- O erro consiste em: quando compilo meu programa tudo esta ok, porém o valor retornado pela variável numcomp esta muito além do numero de comparações, se parecendo mais com um endereço de memoria. algo do tipo: 348219. Já a variável numtrocas o valor é retornado normalmente apos os incrementos ++;
       
       
      Aguardo ajuda, de já agradeço.
       
       
    • Por r1castro1
      :( Olá pessoal, estou aprendendo programação em C/C++ e ainda me perco na resolução de alguns problemas. A questão abaixo, requer eu crie 5 ponteiros e os ordene em forma crescente. Há uma semana que estou nisso. Alguém pode me ajudar?
      //Faça um programa usando ponteiros, para ordenar 5 números e mostrá-los ordenados na tela. //A ordenação deve ser realizada através dos ponteiros. Então é necessário criar cinco ponteiros [ code] #include <stdio.h> int main() { int a, b, c, d, e; int *ponteiro_a = &a, *ponteiro_b = &b, *ponteiro_c = &c, *ponteiro_d = &d, *ponteiro_e = &e; int *menor = ponteiro_a, *medio_1 = ponteiro_a, *medio_2 = ponteiro_a, *medio_3 = ponteiro_a, *maior = ponteiro_a; printf("Entre com 5 numeros Inteiros [separados por espaços]: "); scanf(" %d %d %d %d %d", ponteiro_a, ponteiro_b, ponteiro_c, ponteiro_d, ponteiro_e); if(*ponteiro_b > *maior) maior = ponteiro_b; if(*ponteiro_c > *maior) maior = ponteiro_c; if(*ponteiro_d > *maior) maior = ponteiro_d; ; if(*ponteiro_e > *maior) maior = ponteiro_e; if(*ponteiro_b < *menor) menor = ponteiro_b; if(*ponteiro_c < *menor) menor = ponteiro_c; if(*ponteiro_d < *menor) menor = ponteiro_d; if(*ponteiro_e < *menor) menor = ponteiro_e; if(maior != ponteiro_a && menor != ponteiro_a && medio_1 != ponteiro_a) medio_2 = ponteiro_a; else { medio_3 = ponteiro_a; } if(maior != ponteiro_b && menor != ponteiro_b && medio_1 != ponteiro_B) medio_1 = ponteiro_b; else { medio_3 = ponteiro_b; } if(maior != ponteiro_c && menor != ponteiro_c && medio_1 != ponteiro_c) medio_2 = ponteiro_c; else { medio_3 = ponteiro_c; } if(maior != ponteiro_d && menor != ponteiro_d && medio_1 != ponteiro_d) medio_2 = ponteiro_d; else { medio_3 = ponteiro_d; } if(maior != ponteiro_e && menor != ponteiro_e && medio_1 != ponteiro_e) medio_2 = ponteiro_e; else { medio_3 = ponteiro_e; } printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_1, *medio_2, *medio_3, *maior); printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_3, *medio_2, *medio_1, *maior); printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_2, *medio_3, *medio_1, *maior); printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_1, *medio_3, *medio_2, *maior); printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_2, *medio_1, *medio_3, *maior); printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_1, *medio_2, *medio_3, *menor); printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_3, *medio_2, *medio_1, *menor); printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_2, *medio_3, *medio_1, *menor); printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_1, *medio_3, *medio_2, *menor); printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_2, *medio_1, *medio_3, *menor); return 0; } [ /code]
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.