Jump to content

Duvidas e erros que nao consigo resolver


Recommended Posts

Posted

Boas ppl!

Mais um work e mais dores de cabeça  :wallbash:

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?

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.