eyeonyou Posted May 11, 2006 at 03:53 PM Report #26886 Posted May 11, 2006 at 03:53 PM Boas ppl! Mais um work e mais dores de cabeça Comecei a fazer este work e ag tou impancado. Nao percebo mt de estruturas e por isso segui +/- um exercicio que tava aqui no forum. O enunciado é : http://img92.imageshack.us/img92/6316/semttulo5ke.jpg #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> typedef struct aluno { int num_matricula; int ano_matricula; char Nome[100]; int num_disciplinas; } ; void inicializa(int p) struct aluno *p; { int i; for(i=0;i<p;i++) (p++)->ocup='0'; } void inserir(struct aluno p) struct aluno *p; { int i; for(i=0;i<n && p->ocup=='1';i++) p++; if(i<n) { printf("\n\tNumero de Matricula: "); scanf("%d",&p->num_matricula); printf("\tAno da Matricula: "); scanf("%d",&p->ano_matricula); printf("\tNome (Primeiro e Ultimo): "); scanf("%s",p->nome); printf("\tNumero de Disciplinas Inscritas: "); scanf("%d",&p->num_disciplinas); p->ocup='1'; } else printf("\n\n\t Lista completa"); } main() { struct aluno alunos[n]; int op; inicializa(alunos); do { printf("\t\t\t#----------------------------------------#"); printf("\n\t\t\t| Trabalho Pratico III - Parte I |\n"); printf("\t\t\t#----------------------------------------#\n\n"); printf("Escolha uma das opcoes:\n\n\n"); printf("\t 1 - Novo Registo de aluno.\n\n"); printf("\t 2 - .\n\n"); printf("\t 3 - .\n\n"); printf("\t 4 - .\n\n"); printf("\t 5 - .\n\n"); printf("\t 6 - .\n\n"); printf("\t 0 - .\n\n"); printf("\t A minha opcao e -> "); scanf("%d",&op); switch(op) { case 0 : { printf("\n\t\t\t\tO PROGRAMA VAI TERMINAR!!!\n"); getch(); break; } case 1 : { inserir(alunos); getch(); break; } case 2 : { break; } case 3 : { getch(); break; } case 4 : { getch(); break; } case 5 : { break; } case 6 : { break; } default : { printf("\tERRO NA OPCAO...tente novamente...\n"); getch(); break; } } } while(op!=0); } Isto é o que tenho ate ag e nao consigo ultrapassar estes erros. Tou a usar o dev-c++ Alguma dica?
mogers Posted May 11, 2006 at 08:53 PM Report #26966 Posted May 11, 2006 at 08:53 PM Tu tens bastantes erros... por exemplo, na main() tens struct aluno alunos[n]; mas o "n" não está definido em lado nenhum... e para o usares assim precisas de o definir como constante. exemplo: const int n = 10; void inicializa(int p) struct aluno *p; { int i; for(i=0;i<p;i++) (p++)->ocup='0'; } A estrutura aluno nao tem um campo "ocup". Estás a declarar a estrutura e um inteiro com o mesmo nome e nunca defini em C variaveis antes do corpo da função... eu sugeria umas alterações (eu apenas tentei corrigir alguns erros): const int n = 10; typedef struct aluno { int num_matricula; int ano_matricula; char Nome[100],ocup; // acrescentei o campo ocup int num_disciplinas; } aluno; // assim nao precisas de estar sempre a usar o struct aluno .... void inicializa(aluno *p,int num) // num é o numero de elementos do array { int i; for(i=0;i<num;i++) (p++)->ocup='0'; } int main() { struct aluno alunos[n]; int op; inicializa(alunos,n); do .... return 0; } espero ter ajudado "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now