
free_w3000
(usa Slackware)
Enviado em 07/08/2007 - 19:30h
Ai mano blz?
Então eu fiquei com algumas duvidas.
Por exemplo, por que você não utilizou switch para o menu?
acho que o problema está no laço do for, uma solução
temporario foi retirar o fflush(stdin); e colocar depois do for.
segue o codigo que testei no windows
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(){
int i,opcao;
float somaAltura=0,mg;
struct
{
char nome[30];
int altura;
}pessoas[15];
printf("\nMenu");
printf("\n1-Cadastrar as 15 pessoas");
printf("\n2-Mostrar registro dos menores que 1,5m");
printf("\n3-Mostrar registro dos maiores que a media geral das alturas");
printf("\n4-Sair do programa");
printf("\nDigite a opcao desejada:");
scanf("%d",&opcao);
if(opcao>1) return 0;
for(i=0;i<15;i++)
{
fflush(stdin);
getch();
printf("Nome:");
fgets(pessoas[i].nome,30,stdin);
printf("\nAltura:");
scanf("%d",pessoas[i].altura);
somaAltura=somaAltura+pessoas[i].altura;
}
mg=somaAltura/15;
printf("Todos os 15 Nomes Foram Obtidos\n\n");
printf(" Digite um nova op‡Æo:");
scanf("%d",&opcao);
if(opcao=='2'){
if(pessoas[i].altura<1.5) printf("%s,%.1f",pessoas[i].nome,pessoas[i].altura);
}
else if(opcao=='3'){
if(pessoas[i].altura>mg) printf("%s,%.1f",pessoas[i].nome,pessoas[i].altura);
}
else if(opcao=='4') return 0;
else if(opcao<1||opcao>4) printf("Opcao nao existente:");
getch();
}
qualquer coisa posta ai para nois, espero ter ajudado em algo