Achei o problema da compilação , era na declaracão de escopos as funcoes estavam incorretas faltava os parametros.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define vagas 40
typedef struct CadastroAluno{
int idnome;
char nome[30];
int qtdnomes;
}CadastroAluno;
typedef struct CadastroDisciplina{
int iddisciplina;
char disciplina[30];
int qtdalunos;
int alunoscadastradosemdisciplina[vagas];
}CadastroDisciplina;
CadastroAluno cadastroaluno(CadastroAluno Aluno[]); //alterado
CadastroDisciplina cadastrodisciplina(CadastroDisciplina Disciplina[]); //alterado
void Menu(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
void ListarAluno(CadastroAluno Aluno[]); //alterado
void cadastroalunoemdisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
void ListarDisciplina(CadastroDisciplina Disciplina[]); //alterado
int excluiralunodedisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
void listaridalunosmatriculadosemdisciplina(); //Falta fazer ainda
int main (){
CadastroAluno Aluno[100];
CadastroDisciplina Disciplina[100];
Aluno[0].qtdnomes = 0;
Disciplina[0].qtdalunos = 0;
Disciplina[1].qtdalunos = 0;
Menu(Aluno, Disciplina);
int Ret = excluiralunodedisciplina(Aluno, Disciplina);
if (Ret == 1) printf("\nAluno Excluido com Sucesso!\n"); //Resolver
if (Ret == 2) printf("\nAluno nao encontrado!\n"); //Resolver
if (Ret == 3) printf("\nDisciplina nao encontrada!\n"); //Resolver
system ("Pause");
return 0;
}
void Menu(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
int opc;
do{
printf("\nInforme [1] para cadastrar!");
printf("\nInforme [2] para Listar Alunos!");
printf("\nInforme [3] para Cadastrar Disciplina!");
printf("\nInforme [4] para Listar Disciplinas!");
printf("\nInforme [5] para Cadastrar Aluno em Disciplina!");
printf("\nInforme [6] para Excluir Aluno de Disciplina!");
printf("\nInforme [0] para Sair!");
printf("\nInforme a opcao: ");
scanf("%d", &opc);
if(opc == 1) cadastroaluno(Aluno);
if (opc == 2) ListarAluno(Aluno);
if (opc == 3) cadastrodisciplina(Disciplina);
if (opc == 4) ListarDisciplina(Disciplina);
if (opc == 5) cadastroalunoemdisciplina(Aluno, Disciplina);
if (opc == 6) excluiralunodedisciplina(Aluno, Disciplina);
}while(opc != 0);
}
CadastroAluno cadastroaluno(CadastroAluno Aluno[]){
printf("\nInforme Nome %d: ", Aluno[0].qtdnomes+1);
fflush(stdin);
gets(Aluno[Aluno[0].qtdnomes].nome);
printf("\nInforme ID_aluno: ");
scanf("%i", &Aluno[Aluno[0].qtdnomes].idnome);
fflush(stdin);
Aluno[0].qtdnomes++;
printf("\nQuantidade de nomes: %i\n", Aluno[0].qtdnomes);
}
void ListarAluno(CadastroAluno Aluno[]){
if(Aluno[0].qtdnomes > 0){
int cont = 0;
while(cont < Aluno[0].qtdnomes){
printf("\nNome %d: %s\n", cont+1, Aluno[cont].nome);
printf("\nID_aluno : %d\n", Aluno[cont].idnome);
printf("__________\n");
cont++;
}
}
else {
printf("\nNenhum Aluno Cadastrado!\n");
}
}
CadastroDisciplina cadastrodisciplina(CadastroDisciplina Disciplina[]){
printf("\nInforme Nome da disciplina %d: ", Disciplina[0].qtdalunos+1);
fflush(stdin);
gets(Disciplina[Disciplina[0].qtdalunos].disciplina);
printf("\nInforme ID_Disciplina: ");
scanf("%i", &Disciplina[Disciplina[0].qtdalunos].iddisciplina);
fflush(stdin);
printf("\nID_Disciplina : %i esta na posicao %i\n", Disciplina[Disciplina[0].qtdalunos].iddisciplina, Disciplina[0].qtdalunos);
Disciplina[0].qtdalunos++;
printf("\nQuantidade de Disciplina: %i\n", Disciplina[0].qtdalunos);
}
void ListarDisciplina(CadastroDisciplina Disciplina[]){
if(Disciplina[0].qtdalunos > 0){
int cont = 0;
while(cont < Disciplina[0].qtdalunos){
printf("\nNome da Disciplina %d: %s\n", cont+1, Disciplina[cont].disciplina);
printf("\nID_Disciplina : %d\n", Disciplina[cont].iddisciplina);
printf("__________\n");
cont++;
}
}
else {
printf("\nNenhuma disciplina cadastrada!\n");
}
}
void cadastroalunoemdisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
int iddisciplina;
int idaluno;
int cont;
int EncontradoA = 0;
int EncontradoD = 0;
printf("\nInforme o ID_Disciplina da Disciplina que vai cadastrar o Aluno: ");
scanf("%i", &iddisciplina);
for(cont = 0; cont <= 100; cont++){
if(iddisciplina == Disciplina[cont].iddisciplina){
EncontradoD = 1;
}
}
printf("\nInforme o ID_Aluno do Aluno que vai ser cadastrado na Disciplina informada: ");
scanf("%i", &idaluno);
for(cont = 0; cont <= 100; cont++){
if(idaluno == Aluno[cont].idnome){
Disciplina[cont].alunoscadastradosemdisciplina[cont] = idaluno;
EncontradoA = 1;
Disciplina[1].qtdalunos++;
printf("\nAluno %i cadastrado na posicao %i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont], cont);
}
}
if(EncontradoA == 1 && EncontradoD == 1){
printf("\nAluno Cadastrado com Sucesso!\n");
printf("\nQuantidade de Alunos nessa disciplina: %i\n", Disciplina[1].qtdalunos);
}
else if (EncontradoA != 1){
printf("\nAluno nao encontrado!\n");
}
else if(EncontradoD != 1){
printf("\nDisciplina nao encontrada!\n");
}
printf("id_disciplina: %i\n", iddisciplina);
printf("id_aluno: %i\n", idaluno);
}
void listaridalunosmatriculadosemdisciplina(CadastroDisciplina Disciplina[]){
//Falta fazer
}
int excluiralunodedisciplina (CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
int idaluno;
int iddisciplina;
int cont;
int EncontradoA = 0;
int EncontradoD = 0;
printf("\nInforme o ID_Disciplina da Disciplina que vai ser excluido o Aluno: ");
scanf("%i", &iddisciplina);
for(cont = 0; cont <= 100; cont++){
if(iddisciplina == Disciplina[cont].iddisciplina){
EncontradoD = 1;
}
}
printf("\nInforme o ID_Aluno do Aluno a ser excluido da disciplina: ");
scanf("%i", &idaluno);
for(cont = 0; cont <= 100; cont++){
if(idaluno == Aluno[cont].idnome){
EncontradoA = 1;
}
}
for(cont = 0; cont < Disciplina[1].qtdalunos; cont++){
if(idaluno == Disciplina[cont].alunoscadastradosemdisciplina[cont]){
printf("\n%i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont]); //Aluno Cadastrado
Disciplina[cont].alunoscadastradosemdisciplina[cont] = '\0';
Disciplina[1].qtdalunos--;
printf("\n%i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont]); //Aluno Após ser excluído
}
}
if(EncontradoA == 1 && EncontradoD == 1){
//printf("\nAluno Excluido com Sucesso!\n");
printf("\nQuantidade de Alunos nessa disciplina: %i\n", Disciplina[1].qtdalunos);
return 1;
}
else if (EncontradoA != 1){
//printf("\nAluno nao encontrado!\n");
return 2;
}
else if(EncontradoD != 1){
//printf("\nDisciplina nao encontrada!\n");
return 3;
}
}