Ir ao conteúdo

Estrutura e Função em c


linguagem_c

Posts recomendados

Postado

Foi realizada uma pesquisa sobre algumas características físicas de 50 habitantes de certa região. De cada habitante foram coletados os seguintes dados: sexo, altura, idade e cor dos olhos (a - azuis, v - verdes ou c - castanhos).

Faça um programa que leia esses dados, armazene-os em um registro tipo vetor e determine:

* a média da idade das pessoas com olhos castanhos e altura superior a 1,60 m

* a maior idade entre os habitantes

* a quantidade de indivíduos do sexo feminino com idade entre 20 e 45 anos (inclusive) ou que tenham olhos verdes e altura inferior a 1,70m

* o percentual de homens

Estou tendo prolemas nas linhas 16, 28 e 72. Não consigo determinar o erro para resolver

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

#define M 50
struct
{
int sexo;
float altura;
int idade;
char olhos[2];
}dados[M];
float media_id_olhos(){
int i;
int soma = 0;
for(i=0;i<M;i++){
if(dados[i].altura > 1,6 && dados[i].olhos == 'c'){
soma = soma + dados[i].idade;
}
float media;
media = soma/2;
return(media);
}
int individuos(){
int i;
int count;
for(i=0;i<M;i++){
if(dados[i].sexo = 2){
if(dados[i].idade >19 && dados[i].idade <46 || dados[i].olhos == 'v' && dados[i].altura < 1,7){
count ++;
}
}
}
return (count);
}
float percentual(){
int i;
int count;
for(i=0;i<M;i++){
if(dados[i].sexo == 1)
count ++;
}
float perc;
perc = (count * 100)/M;
return (perc);
}
int maior(){
int i;
int maior;
maior = dados[0].idade;
for(i=0;i<M;i++){
if(dados[i].idade > maior){
maior = dados[i].idade;
}
}
return (maior);
}
int main()
{
int i;
for(i=0;i<M;i++){
printf("Informe o seu sexo:\n (1)Masculino (2)Feminino \n");
scanf("%d",&dados[i].sexo);
printf("Digite sua altura \n");
scanf("%f",&dados[i].altura);
printf("Digite sua idade \n");
scanf("%d",&dados[i].idade);
printf("Informe a cor dos seus olhos: \n (a) azuis\n (v) verdes\n (c) castanhos \n");
scanf("%s",&dados[i].olhos);
}
system("PAUSE");
return 0;
}

Postado

O separador decimal em C é o ponto, não a vírgula. Troque nos if's (troque as vírgulas por pontos).

Mas comparar valores em ponto flutuante diretamente não é lá uma das melhores idéias. Subtraia o valor da variavel do valor que deseja comparar e veja se ele é menor ou igual a outro certo valor usado para controlar a precisão. Exemplo


if( (x-1.6) <= 0.01) {
//faça algo
}

Eu acho isso mais garantido.

Abraços

  • 5 semanas depois...
  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!