3
Good evening, I’m doing a program in c that should read 20 entries with data of interviewees.
I managed to elaborate everything, but in the matter of reading this data I have a strange error... (It may be the Turbo C thing)...
In short, I can enter some records and after that falls back to the program menu... (Enter an option...)
My doubts are:
- This is the best way to store data entry?
- What I did wrong?
This is the script:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
/*
- Nome (máximo de 30 caracteres).
- Idade.
- Sexo.
- Quantidade de filhos.
- Renda mensal familiar.
*/
struct infoPessoa{
char nome[30];
char sexo;
int idade;
int nFilhos;
float renda_familiar;
};
// erro estupido por não encontrar referencia...
void dummy()
{
float f,*fp;
fp=&f;
}
void main ()
{
// declaração de variaveis
const int tamanho=20;
char opcao;
int i, escolha_valida;
int saida = 0;
infoPessoa entrevistados[tamanho]; // 20 pessoas.
while( saida == 0 ) {
escolha_valida = 0;
while( escolha_valida == 0 ) {
printf("C - Cadastrar entrevistados:\nL - Listar entrevistados:\nR - Relatorios:\nS - Sair:\n");
printf("Digite a opcao:\n");
scanf(" %c", &opcao );
if((opcao=='C') || (opcao=='L') || (opcao=='R') || (opcao=='S'))
escolha_valida = 1;
else
printf("\007Erro. Opcao do menu invalida.\n");
}
switch( opcao ) {
case 'C' :
clrscr();
for (i=0; i<20; i++)
{
printf("Digite o nome do entrevistado %d:\n", i+1 );
scanf(" %s",entrevistados[i].nome);
printf("Digite o sexo (M) OU (F):\n");
scanf(" %c", entrevistados[i].sexo);
printf("Digite a idade:\n");
scanf(" %d", entrevistados[i].idade);
printf("Quantos filhos?:\n");
scanf(" %d", entrevistados[i].nFilhos);
printf("Valor da renda familiar:\n");
scanf(" %f", entrevistados[i].renda_familiar);
}
break;
case 'L' :
clrscr();
break;
case 'R' :
/*
Com base nos dados coletados, apresente na tela as seguintes informações:
- Percentual de mulheres e homens.
- Número de pessoas que ganham acima de 500.00 (quinhentos reais).
- Percentual de pessoas que tem ao menos 1 filho.
- Número de pessoas que nasceram a partir do ano 2000.
*/
break;
case 'S': saida = 1; break;
}
}
}