Utilizando o programa para manipulação de tabelas HASH, NÃO ACHO O ERRO.

1. Utilizando o programa para manipulação de tabelas HASH, NÃO ACHO O ERRO.

daniel ferreira
jacare015

(usa Outra)

Enviado em 01/03/2017 - 23:36h

#include <stdio.h>
#include <conio.h>
#include <malloc.h>

#define MAX_PARTICOES 100
	typedef struct n{ 
 		char nome[50];
 		int peso; 
 		float altura, imc;
 		struct n *proximo;
	}massa;
	typedef struct{	
 		massa *table[MAX_PARTICOES];
 		int n_particoes;
	}hash;
	void inicializa(hash *h1, int n){
 		int i;
 		for(i=0; i < n; i++) {
  		h1->table[i] = NULL;
 		}
		h1->n_particoes = n;
	}					
		int divisao_inteira(char nome[50], int n_particoes)
		{
 			int lol, soma=0, i=0, valor;
 			while (nome[i] != '\0')	
		{
   			valor=nome[i];
   			soma=valor+soma;
   			i++;
 		}
 			lol=soma%n_particoes;
 			return lol;
		}				
		void insere(hash *h1, char nome[50], int peso, float altura){
 			int part, i;
 			massa *p;
 			part = divisao_inteira(nome, h1->n_particoes);
 			p = (massa*)malloc(sizeof(massa));
 			strcpy(p->nome, nome);
			 p->peso = peso;
			 		FILE *salva;
 					salva = fopen("arquivo.txt","w");
 					
 				fprintf(save,"%s %i %.2f %.2f",z->nome,z->peso,z->altura,imc);
 				fclose(save);
 				z->prox =  h1->table[part];
 				h1->table[part] = z;
		}		

		void imprime_particao(hash h1, int i){
 			massa *z;
 			z = h1.table[i];
 				while(p != NULL) 
				{
  					printf("->%s", p->nome);
  					p = p->prox;
 				}
		}

		void imprime_hash(hash h1){
 			int i;
 			printf("\n tabelinha \n");
 				for(i=0; i<h1.n_particoes; i++){
 					 printf("[ %d ] ",i);
  					imprime_particao(h1,i); printf("\n");
 				}
		}

void main() {
	int peso;
	float altura, imc;
	printf("Vamos calcular esse imc ae, agora preencha esses requisitos ae e #sovamo");
  	printf("\n--------------DADOS--------------\n");
	printf("\n|| Menos de 20     Abaixo do peso   ||\n");
  	printf("\n|| 20 <= IMC < 25  Peso Normal      ||\n");
  	printf("\n|| 25 <= IMC < 30  Acima do peso    ||\n");
  	printf("\n|| 30 <= IMC < 34  Obeso            ||\n");         
  	printf("\n|| Acima de 34     obesidade morbida||\n");
	printf("\-----------------------------------\n");
		printf(" Digite seu peso em kg:\n");
  		scanf("%d", &peso);
		printf("\n Digite sua altura em metros :\n");
  		scanf("%f", &altura);
  			imc = peso / (altura * altura);
  			printf("\n\nIMC = peso / (altura * altura)");

  	printf("\n teu IMC e = %.2f", imc);
  						if (imc < 20)
     						printf(" (abaixo do peso).");
  						else if ((imc >= 20) && (imc < 25))
          					printf(" (peso normal).");
       					else if ((imc >= 25) && (imc < 30))
               				printf(" (acima do peso).");
            			else if ((imc >= 30) && (imc < 34))
                    			printf(" (obeso).");
		 				else
		    					printf(" (obesidade morbita).");
} 



  


2. Re: Utilizando o programa para manipulação de tabelas HASH, NÃO ACHO O ERRO.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/03/2017 - 08:49h

Seria bom se você nos ajudasse a ajudá-lo, dizendo qual o erro e em qual situação ele ocorre. Seria bom, também, que você reformatasse o código que colocou na sua postagem pois, na forma em que está, dificulta a leitura e a compreensão.


3. Re: Utilizando o programa para manipulação de tabelas HASH, NÃO ACHO O ERRO.

daniel ferreira
jacare015

(usa Outra)

Enviado em 02/03/2017 - 13:34h

Eu gostaria de fazer um algoritmo que compare o importante de duas pessoas com esses requisitos. Mais eu travei ai






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts