Programa de Registro

1. Programa de Registro

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/08/2007 - 10:24h

Código:

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

int main(){
int i,opcao;
float somaAltura=0,mg;
struct
{
char nome[30];
float 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);
getchar();
printf("Nome:");
fgets(pessoas[i].nome,30,stdin);
fflush(stdin);
printf("\nAltura:");
scanf("%f",&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:");

getchar();
}

Problema:

O programa compila e é executado,você escolhe a opção 1 para cadastrar e digita o nome e a altura da pessoa,o problema do programa está no cadastro da segunda pessoa,quando o programa coloca para cadastrar a segunda pessoa,ele acaba pulando o nome e vai direto para a altura.


OBS:Eu uso o kurumin 7,por isso tem o comando getchar() inves do getch() do windows,quem tiver o windows terá que colocar o comando getch() e o
#include <conio.h>.

O que eu tenho que fazer para corrigir o problema?



  


2. Re: Programa de Registro

oscar
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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts