Meu codigo em C nao esta rodando

C

19/04/2023

Boa noite, estou tentando rodar o meu codigo porem estou tendo problemas, poderiam me ajudar?

#include <stdio.h>

struct peso{
	int nome[30];
	float peso;
}

int main(void)
{
	struct peso 	dados[5];
	float 			media=0;
	int 			i=1, cant=0;

	for(i=0;i<5;i++)
	{
		printf("\nNome: ");
		gets(dados[i] .nome);
		printf("\nPeso: ");
		printf("%f",&dados[i] .peso);
		media+=dados[i] .peso;
	}

	media=media/5;

	for(i=0;i<5;i++)
	{
		if(dados[i].peso>media)
		{
			printf("%s está acima do peso médio\n",dados[i].nome);
			cant++;
		}
	}	
	printf("%d pessoas estão acima do peso médio", cant);
}
Fabiano

Fabiano

Curtidas 1

Respostas

Lucas Santato

Lucas Santato

19/04/2023

Nunca mexi com C, mas colei seu código em um compilador online e ele acusou erro de estar faltando um ";" no seu struct peso, ficaria assim:
struct peso{
  int nome[30];
  float peso;
}; //Esse ";" estava faltando.
GOSTEI 0
Arthur Heinrich

Arthur Heinrich

19/04/2023

Também não manjo muito de C, mas a palavra "struct" me parece ser utilizada para criar um agrupamento de características, como em:

struct peso{
int nome[30];
float peso;
}

Porém, você utilizou em um caso em que só tem uma característica e não está entre chaves:

struct peso dados[5];

Não deveria ser somente:

peso dados[5];

Aí, para mim, parece que você está criando um array de 5 posições, em que cada elemento é uma estrutura "peso".

Além disso, quando você pede o nome, você utiliza:

printf("\\\\nNome: ");
gets(dados[i] .nome);

Que exibe o texto "Nome:" na tela e supostamente aguarda a digitação do nome, que será armazenado na variável "nome", da posição "i" do array "dados".
Quando ao valor de peso, qual é o comando que recebe a digitação do usuário? Aparentemente está faltando isso.

Se o gets() retorna um string imputado pelo usuário, imagino que deveria haver um getf() para imputar um float, ou algo parecido:

printf("\\\\nPeso: ");
getf(dados[i] .peso);

Será que é isso?

Obs.: não sei se existe a função getf()
GOSTEI 0
POSTAR