Meu codigo em C nao esta rodando
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
Curtidas 1
Respostas
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
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()
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