
Go backward to Fermat: desenvolvimento de um programa
Go up to Alguns exercícios a exemplos dados nas aulas teóricas
Go forward to Formatação
Estruturas
Relativamente a uma turma de alunos existe informação para cada aluno de:
nome, telefone e ano em que nasceu. Implemente um programa que, repetidamente,
pergunte o nome e indique o telefone e a idade (caso esse aluno exista).
// -----------------------------------------------------------------------------
/* Uma turma de alunos contem informacao para cada aluno de
Nome, telefone, ano em que nasceu.
Pede-se um programa que, repetidamente, pergunte o nome e indique
o telefone e a idade.
Decisoes:
Variaveis globais e locais
Estrutura em funcoes
Que fazer quando o nome nao existe? Que deve a funcao retornar?
*/
#define ALUNOS 3
#define MAXL 100
#define END "q"
#define NOT_FOUND (-1)
typedef struct aluno
{ char *nome;
char *telefone;
int ano;
} ALUNO;
ALUNO turma[ALUNOS]=
{ {"Rui", "224567890", 1970},
{"Ana", "228888888", 1977},
{"Caramelo", "210000000", 1900}
};
int procura(char *);
main(){
int i;
char s[MAXL];
while(1){
printf("Nome do aluno ( s para terminar)? ",END);
scanf(" s",s);
if(strcmp(s,END)==0)
break;
i=procura(s);
if(i==NOT_FOUND)
printf("Esse aluno nao existe\n");
else
printf("Telefone= %s, Idade= %d\n",turma[i].telefone,
2000-turma[i].ano);
}
}
int procura(char *n){
int i=0;
for(i=0;i<ALUNOS;i++)
if(strcmp(n,turma[i].nome)==0)
return(i);
return(NOT_FOUND);
}
/* Resultados
Nome do aluno (q para terminar)? Rui
Telefone=224567890, Idade=30
Nome do aluno (q para terminar)? Ana
Telefone=228888888, Idade=23
Nome do aluno (q para terminar)? Jeremias
Esse aluno nao existe
Nome do aluno (q para terminar)? Rui
Telefone=224567890, Idade=30
Nome do aluno (q para terminar)? q
*/
