Ir ao conteúdo

Posts recomendados

Postado

Considere que um médico armazena algumas informações sobre seus pacientes (estrutura: código, nome, idade, sexo, altura e peso). Crie um programa que armazene (utilizando função) essas informações e determine:
  a. O nome da pessoa com maior peso.
  b. O nome e a idade das pessoas que estejam acima de seu peso ideal.
  c. O nome das pessoas que estejam abaixo de seu peso ideal, mostrando ainda o peso que essas pessoas deverão alcançar para atingir esse peso ideal.  
Utilize as expressões abaixo para determinar o peso ideal:
  Homens: (72,7 * altura) – 58.
  Mulheres: (62,1 * altura) – 44,7.  
Encerre a leitura dos dados quando atingir 15 pacientes, ou ler código = 0 (zero).

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <conio.h>

typedef struct {
	char sexo, nome[50];
	int idade, codigo;
	float peso, altura;
}paciente;

cadastro(paciente *x){
	int l;
	printf("Insira o código do paciente: ");
	scanf("%d", &x[l]->codigo); fflush(stdin);
	printf("Insira o nome do paciente: ");
	gets(x[l]->nome); fflush(stdin);
	printf("Insira a idade do paciente: ");
	scanf("%d", &x[l]->idade); fflush(stdin);
	printf("Insira o sexo do paciente: ");
	scanf("%c", &x[l]->sexo); fflush(stdin);
	printf("Insira a altura do paciente(ex. 1.75): ");
	scanf("%f", &x[l]->altura); fflush(stdin);
	printf("Insira o peso do paciente(ex. 75.5");
	scanf("%f", &x[l]->peso); fflush(stdin);
}

main(){
	setlocale(LC_ALL, "portuguese");
	
	int l=0, c;
	paciente x[15];
	for(c=0;c<15;c++){
		cadastro(&x);
	}
}

Tenho que fazer esse exercício da faculdade, mas não consigo de jeito nenhum. Já pesquisei em todo lugar possivel e nao encontrei a solução para o meu problema.
O meu problema é na chamada da função cadastro, eu não sei como anuncio a struct. Se alguém conseguir tirar minha duvida ficarei grato.

  • Curtir 1
Postado

@Jv Rotta   seu código está bom,  a chamada da função está quase certa você colocou esse & que não precisa , então seu código com algumas modificações fiaria assim :

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <conio.h>

typedef struct {
	char sexo, nome[50];
	int idade, codigo;
	float peso, altura;
}paciente;

int cadastro(paciente *x,int l){
	printf("Insira o codigo do paciente: ");
	fflush(stdin);
	scanf("%d", &x[l].codigo);
	if(x[l].codigo != 0){
	    fflush(stdin);
	    printf("Insira o nome do paciente: ");
	    gets(x[l].nome); fflush(stdin);
	    printf("Insira a idade do paciente: ");
	    scanf("%d", &x[l].idade); fflush(stdin);
	    printf("Insira o sexo do paciente: ");
	    scanf("%c", &x[l].sexo); fflush(stdin);
	    printf("Insira a altura do paciente(ex. 1.75): ");
	    scanf("%f", &x[l].altura); fflush(stdin);
	    printf("Insira o peso do paciente(ex. 75.5");
	    scanf("%f", &x[l].peso);
	}
	return x[l].codigo;
}
int main(){
	/*setlocale(LC_ALL, "portuguese");*/
    /*se usar essa biblioteca os float ficarão sem casas decimais */
	int j,r,c,cont=0;
	paciente x[15];
	for(c=0;c<15;c++){
		r = cadastro(x,c);
		if(r==0)c=15;
		cont++;
	}
	for(j=0;j<cont-1;j++){
        printf("codigo = %d  \n",x[j].codigo);
        printf("nome   = %s  \n",x[j].nome  );
        printf("idade  = %d  \n",x[j].idade );
        printf("sexo   = %c  \n",x[j].sexo  );
        printf("altura = %.2f\n",x[j].altura);
        printf("peso   = %.2f\n\n",x[j].peso);
    }
    getch();
	return 0;
}

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...