tonelol1 Posted July 8, 2012 at 03:27 PM Report Share #467903 Posted July 8, 2012 at 03:27 PM (edited) Boas estou fazer um programa em c e ele dame um erro nas case e eu nao estou a descobrir o porque, se alguem me poder ajudara resolver o problema agradecia aqui disponibilizo o programa para quem quiser ajudar: http://www.mediafire.com/?6a84hhe4wi6gyw7 Edited July 8, 2012 at 03:28 PM by tonelol1 Link to comment Share on other sites More sharing options...
brunoais Posted July 8, 2012 at 03:37 PM Report Share #467904 Posted July 8, 2012 at 03:37 PM O teu código está mal indentado. Não o consigo ler corretamente. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
polska Posted July 8, 2012 at 03:38 PM Report Share #467905 Posted July 8, 2012 at 03:38 PM O fórum disponibiliza o código colorido (GeSHi) quando escreves um post, porque não utilizas, é muito mais fácil, e certamente que terás respostas mais rapidamente. Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
tonelol1 Posted July 8, 2012 at 03:41 PM Author Report Share #467906 Posted July 8, 2012 at 03:41 PM (edited) sorry #include <stdio.h> #include <stdlib.h> #include <string.h> #define maximo 500 //variavel global int code=0; typedef struct projeto { char palavra_chave1[50]; char palavra_chave2[50]; char palavra_chave3[50]; char palavra_chave4[50]; char palavra_chave5[50]; int codigo; char titulo[50]; char instituicao[50]; char investigador[50]; int duracao; int equipamentos; int bolsas; int consumiveis; int consultores; int deslocacoes; int gastos_gerais; int originalidade; int qualidade; int idoneidade; int exequibilidade; int classificador; int gastos; } candidato, *projetos; typedef struct lista{ projetos candid; struct lista *seguinte; }tCell, *listacandid; listacandid adiciona_proj_a_lista(listacandid lista, projetos p1){ listacandid novalista; listacandid atual = lista; listacandid anterior=NULL; while( atual!=NULL) { anterior=atual; atual=atual->seguinte; } novalista=(listacandid)malloc(sizeof(tCell)); novalista->candid=p1; novalista->seguinte=atual; if(anterior!=NULL){ anterior->seguinte=novalista; } else { lista=novalista; } return lista; } //CRIA void criar_projeto(listacandid lista) { int num,soma; double media_avaliacao,valor1,valor2,valor3; projetos p1; fflush(stdin); printf("Introduza o titulo: "); fgets(p1->titulo,50,stdin); p1->titulo[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza a instuituicao proponente: "); fgets(p1->instituicao,50,stdin); p1->instituicao[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza o nome do investigador responsavel: "); fgets(p1->investigador,50,stdin); p1->investigador[strlen(p1->investigador)-1] = '\0'; printf("\nIntroduza a duracao do projecto(em anos): "); scanf("%d",p1->duracao); fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave1,50,stdin); p1->palavra_chave1[strlen(p1->palavra_chave1)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave2,50,stdin); p1->palavra_chave2[strlen(p1->palavra_chave2)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave3,50,stdin); p1->palavra_chave3[strlen(p1->palavra_chave3)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave4,50,stdin); p1->palavra_chave4[strlen(p1->palavra_chave4)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave5,50,stdin); p1->palavra_chave5[strlen(p1->palavra_chave5)-1] = '\0'; printf("\nIntroduza o valor para os gastos em compra de equipamento: "); scanf("%d",p1->equipamentos); printf("\nIntroduza o valor para os gastos na bolsa: "); scanf("%d",p1->bolsas); printf("\nIntroduza o valor para os gastos com consumiveis: "); scanf("%d",p1->consumiveis); printf("\nIntroduza o valor para os gastos com consultores: "); scanf("%d",p1->consultores); printf("\nIntroduza o valor para os gastos com deslocacoes: "); scanf("%d",p1->deslocacoes); printf("\nIntroduza o valor para os gastos gerais: "); scanf("%d",p1->gastos_gerais); soma=p1->equipamentos+p1->bolsas+p1->consumiveis+p1->consultores+p1->deslocacoes+p1->gastos_gerais; printf("\nGASTOS FINAIS: %d EUROS\n",soma); printf("\nIntroduza o classificador 1, 2 ou 3!"); scanf("%d",p1->classificador); printf("\nIntroduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->originalidade); printf("\nIntroduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->qualidade); printf("\nIntroduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->idoneidade); printf("\nIntroduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->exequibilidade); media_avaliacao=(p1->originalidade+p1->qualidade+p1->idoneidade+p1->exequibilidade)/4; printf("\nAVALIACOES FINAIS: %d\n",media_avaliacao); lista = adiciona_proj_a_lista(lista,p1); if (media_avaliacao<3) { printf("\nPROJECTO REJEITADO!!\n"); } else if (media_avaliacao==3) { valor1=0.3*soma; printf("\nSubsidio no valor de %0.2f\n",valor1); } else if (media_avaliacao==4) { valor2=0.75*soma; printf("\nSubsidio no valor de %0.2f\n",valor2); } else if ( media_avaliacao==5) { valor3=1*soma; printf("\nSubsidio no valor de %0.2f\n",valor3); } } //LISTA void listar_projeto(listacandid lista){ printf("\n-------- LISTAGEM ------------\n"); if((lista )!= NULL) //candidato inserido { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); lista = lista->seguinte; } } //LISTAR POR CODIGO void mostrarcandidatoescolhido_porcodigo(listacandid lista,int procurar_codigo) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->codigo == procurar_codigo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR TITULO void mostrarcandidatoescolhido_portitulo(listacandid lista,char procurar_titulo[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->titulo == procurar_titulo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR INSTITUICAO void mostrarcandidatoescolhido_porinstituicao(listacandid lista,char procurar_instituicao[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->instituicao == procurar_instituicao) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //REMOVER POR CODIGO void removerAlunoEscolhido_porcodigo(listacandid lista, int remover_codigo) { int i=0; int encontrado=0; for(i=0;i<maximo;i++) { if(lista->candid->codigo == remover_codigo) { free(lista); lista=NULL; encontrado=1; break; } } if(encontrado==0) //!encontrado printf("O aluno não existe\n"); } //LOAD void loadD() { FILE *f = fopen("dadosProjeto.txt","rt"); char str[100]; int i=0; int num; listacandid lista1; if(f!=NULL) { while(!feof(f)) //ficheiro aberto com sucesso { fgets(str,100,f); if(i==5) { criar_projeto(lista1); i=0; } } } } // BINARIO void Binario(listacandid lista) { FILE *f = fopen("listagem_bin.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fwrite(&(lista->candid),sizeof(projeto),1,f); lista=lista->seguinte; } } fclose(f); } void Codigo_Bin(int cod) { FILE *f = fopen("codigo.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { fwrite(&(cod),sizeof(int),1,f); } fclose(f); } //Guardar Projetos void save_proj(listacandid lista) { double valor; FILE *f = fopen("lista.txt","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fprintf(f,"\n"); fprintf(f,"Codigo:%d\n", lista->candid->codigo); fprintf(f,"Titulo: %s\n ", lista->candid->titulo); fprintf(f,"Instituicao Proponente: %s\n ", lista->candid->instituicao); fprintf(f,"Nome do investigador: %s\n ", lista->candid->investigador); fprintf(f,"Duracao Projecto: %d\n", lista->candid->duracao); fprintf(f,"Palavra Chave1: %s\n ", lista->candid->palavra_chave1); fprintf(f,"Palavra Chave2: %s\n ",lista->candid->palavra_chave2); fprintf(f,"Palavra Chave3: %s\n ",lista->candid->palavra_chave3); fprintf(f,"Palavra Chave4: %s\n ",lista->candid->palavra_chave4); fprintf(f,"Palavra Chave5: %s\n ",lista->candid->palavra_chave5); fprintf(f,"Compra Equipamento: %.2d\n", lista->candid->equipamentos); fprintf(f,"Bolsa: %.2d\n", lista->candid->bolsas); fprintf(f,"Despesas de consumiveis: %.2d\n", lista->candid->consumiveis); fprintf(f,"Despesas consultores: %.2d\n", lista->candid->consultores); fprintf(f,"Deslocacoes: %.2d\n", lista->candid->deslocacoes); fprintf(f,"Gastos gerais: %.2d\n", lista->candid->gastos_gerais); fprintf(f,"Total: %.2d\n", valor); fprintf(f,"Classificacao: %d\n", lista); fprintf(f,"\n------------------------\n"); lista = lista->seguinte; } } fclose(f); save_proj(lista); } //MENU void menu() { printf("\n\n\t\t ================ MENU ================\n\n\n\t\t\t"); printf("1 - Inserir Projeto\n\n\t\t\t"); printf("2 - Listar projeto\n\n\t\t\t"); printf("3 - Listar Projeto por codigo\n\n\t\t\t"); printf("4 - Listar Projeto por titulo\n\n\t\t\t"); printf("5 - Listar Projeto por instituiçao \n\n\t\t\t"); printf("6 - Avaliar Projeto por codigo\n\n\t\t\t"); printf("7 - Guardar Projeto\n\n\t\t\t"); printf("8 - Guardar Projeto em binario\n\n\t\t\t"); printf("9 -Ler Ficheiro (binario)\n\n\t\t\t"); printf("0 - Sair\n\n"); } //MAIN int main() { int op, cod,codigo=1; listacandid lista = NULL; char title1[100]; char institui[100]; do { system("cls"); menu(); scanf("%d",&op); switch (op) { case 1: criar_projeto(lista); printf("op1\n"); break; case 2: { listar_projeto(lista); } break; case 3: { printf("Introduza o codigo do projecto a procurar\n"); scanf("%d",&cod); mostrarcandidatoescolhido_porcodigo(lista,cod); system("pause"); } break; case 4: { printf("Introduza o titulo do projecto a procurar\n"); fflush(stdin); fgets(title1,100,stdin); title1[strlen(title1)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_portitulo(lista, title1); } break; case 5: { printf("Introduza a instituição o projecto a procurar\n"); fflush(stdin); fgets(institui,100,stdin); title1[strlen(institui)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_porinstituicao(lista,institui); } break; case 6: { save_proj(lista); printf("op8\n"); } break; case 7: { Binario(lista); Codigo_Bin(codigo); printf("op9\n"); } break; default: printf("Por favor introduza uma opção válida\n"); break; } } while(op!=0); } Edited July 8, 2012 at 06:38 PM by pmg LP adicionada ao GeSHi Link to comment Share on other sites More sharing options...
polska Posted July 8, 2012 at 03:43 PM Report Share #467907 Posted July 8, 2012 at 03:43 PM Agora só falta colocares ihihi .. Mas como o brunoais disse, é difícil ler o teu código , porém podes colocar juntamente no post onde colocaste o código, também a parte onde dá erro, para ser mais fácil de verificar. Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
tonelol1 Posted July 8, 2012 at 03:47 PM Author Report Share #467908 Posted July 8, 2012 at 03:47 PM (edited) #include <stdio.h> #include <stdlib.h> #include <string.h> #define maximo 500 //variavel global int code=0; typedef struct projeto { char palavra_chave1[50]; char palavra_chave2[50]; char palavra_chave3[50]; char palavra_chave4[50]; char palavra_chave5[50]; int codigo; char titulo[50]; char instituicao[50]; char investigador[50]; int duracao; int equipamentos; int bolsas; int consumiveis; int consultores; int deslocacoes; int gastos_gerais; int originalidade; int qualidade; int idoneidade; int exequibilidade; int classificador; int gastos; } candidato, *projetos; typedef struct lista{ projetos candid; struct lista *seguinte; }tCell, *listacandid; listacandid add_lista_proj(listacandid lista, projetos p){ listacandid novalista; listacandid atual = lista; listacandid anterior=NULL; while( atual!=NULL ) { anterior=atual; atual=atual->seguinte; } novalista=(listacandid)malloc(sizeof(tCell)); novalista->candid=p; novalista->seguinte=atual; if(anterior!=NULL){ anterior->seguinte=novalista; } else { lista=novalista; } return lista; } //CRIA void criar_projeto(listacandid lista) { int num,soma; double media_avaliacao,valor1,valor2,valor3; projetos p1; fflush(stdin); printf("Introduza o titulo: "); fgets(p1->titulo,50,stdin); p1->titulo[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza a instuituicao proponente: "); fgets(p1->instituicao,50,stdin); p1->instituicao[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza o nome do investigador responsavel: "); fgets(p1->investigador,50,stdin); p1->investigador[strlen(p1->investigador)-1] = '\0'; printf("\nIntroduza a duracao do projecto(em anos): "); scanf("%d",p1->duracao); fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave1,50,stdin); p1->palavra_chave1[strlen(p1->palavra_chave1)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave2,50,stdin); p1->palavra_chave2[strlen(p1->palavra_chave2)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave3,50,stdin); p1->palavra_chave3[strlen(p1->palavra_chave3)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave4,50,stdin); p1->palavra_chave4[strlen(p1->palavra_chave4)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave5,50,stdin); p1->palavra_chave5[strlen(p1->palavra_chave5)-1] = '\0'; printf("\nIntroduza o valor para os gastos em compra de equipamento: "); scanf("%d",p1->equipamentos); printf("\nIntroduza o valor para os gastos na bolsa: "); scanf("%d",p1->bolsas); printf("\nIntroduza o valor para os gastos com consumiveis: "); scanf("%d",p1->consumiveis); printf("\nIntroduza o valor para os gastos com consultores: "); scanf("%d",p1->consultores); printf("\nIntroduza o valor para os gastos com deslocacoes: "); scanf("%d",p1->deslocacoes); printf("\nIntroduza o valor para os gastos gerais: "); scanf("%d",p1->gastos_gerais); soma=p1->equipamentos+p1->bolsas+p1->consumiveis+p1->consultores+p1->deslocacoes+p1->gastos_gerais; printf("\nGASTOS FINAIS: %d EUROS\n",soma); printf("\nIntroduza o classificador 1, 2 ou 3!"); scanf("%d",p1->classificador); printf("\nIntroduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->originalidade); printf("\nIntroduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->qualidade); printf("\nIntroduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->idoneidade); printf("\nIntroduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->exequibilidade); media_avaliacao=(p1->originalidade+p1->qualidade+p1->idoneidade+p1->exequibilidade)/4; printf("\nAVALIACOES FINAIS: %d\n",media_avaliacao); lista = add_lista_proj(lista,p1); if (media_avaliacao<3) { printf("\nPROJECTO REJEITADO!!\n"); } else if (media_avaliacao==3) { valor1=0.3*soma; printf("\nSubsidio no valor de %0.2f\n",valor1); } else if (media_avaliacao==4) { valor2=0.75*soma; printf("\nSubsidio no valor de %0.2f\n",valor2); } else if ( media_avaliacao==5) { valor3=1*soma; printf("\nSubsidio no valor de %0.2f\n",valor3); } } //LISTA void listar_projeto(listacandid lista){ printf("\n-------- LISTAGEM ------------\n"); if((lista )!= NULL) //candidato inserido { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); lista = lista->seguinte; } } //LISTAR POR CODIGO void mostrarcandidatoescolhido_porcodigo(listacandid lista,int procurar_codigo) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->codigo == procurar_codigo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR TITULO void mostrarcandidatoescolhido_portitulo(listacandid lista,char procurar_titulo[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->titulo == procurar_titulo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR INSTITUICAO void mostrarcandidatoescolhido_porinstituicao(listacandid lista,char procurar_instituicao[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->instituicao == procurar_instituicao) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //REMOVER POR CODIGO void removerAlunoEscolhido_porcodigo(listacandid lista, int remover_codigo) { int i=0; int encontrado=0; for(i=0;i<maximo;i++) { if(lista->candid->codigo == remover_codigo) { free(lista); lista=NULL; encontrado=1; break; } } if(encontrado==0) //!encontrado printf("O aluno não existe\n"); } //LOAD void loadD() { FILE *f = fopen("dadosProjeto.txt","rt"); char str[100]; int i=0; int num; listacandid lista1; if(f!=NULL) { while(!feof(f)) //ficheiro aberto com sucesso { fgets(str,100,f); if(i==5) { criar_projeto(lista1); i=0; } } } } // BINARIO void Binario(listacandid lista) { FILE *f = fopen("listagem_bin.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fwrite(&(lista->candid),sizeof(projeto),1,f); lista=lista->seguinte; } } fclose(f); } void Codigo_Bin(int cod) { FILE *f = fopen("codigo.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { fwrite(&(cod),sizeof(int),1,f); } fclose(f); } //Guardar Projetos void save_proj(listacandid lista) { double valor; FILE *f = fopen("lista.txt","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fprintf(f,"\n"); fprintf(f,"Codigo:%d\n", lista->candid->codigo); fprintf(f,"Titulo: %s\n ", lista->candid->titulo); fprintf(f,"Instituicao Proponente: %s\n ", lista->candid->instituicao); fprintf(f,"Nome do investigador: %s\n ", lista->candid->investigador); fprintf(f,"Duracao Projecto: %d\n", lista->candid->duracao); fprintf(f,"Palavra Chave1: %s\n ", lista->candid->palavra_chave1); fprintf(f,"Palavra Chave2: %s\n ",lista->candid->palavra_chave2); fprintf(f,"Palavra Chave3: %s\n ",lista->candid->palavra_chave3); fprintf(f,"Palavra Chave4: %s\n ",lista->candid->palavra_chave4); fprintf(f,"Palavra Chave5: %s\n ",lista->candid->palavra_chave5); fprintf(f,"Compra Equipamento: %.2d\n", lista->candid->equipamentos); fprintf(f,"Bolsa: %.2d\n", lista->candid->bolsas); fprintf(f,"Despesas de consumiveis: %.2d\n", lista->candid->consumiveis); fprintf(f,"Despesas consultores: %.2d\n", lista->candid->consultores); fprintf(f,"Deslocacoes: %.2d\n", lista->candid->deslocacoes); fprintf(f,"Gastos gerais: %.2d\n", lista->candid->gastos_gerais); fprintf(f,"Total: %.2d\n", valor); fprintf(f,"Classificacao: %d\n", lista); fprintf(f,"\n------------------------\n"); lista = lista->seguinte; } } fclose(f); save_proj(lista); } //MENU void menu() { printf("\n\n\t\t ================ MENU ================\n\n\n\t\t\t"); printf("1 - Inserir Projeto\n\n\t\t\t"); printf("2 - Listar projeto\n\n\t\t\t"); printf("3 - Listar Projeto por codigo\n\n\t\t\t"); printf("4 - Listar Projeto por titulo\n\n\t\t\t"); printf("5 - Listar Projeto por instituiçao \n\n\t\t\t"); printf("6 - Avaliar Projeto por codigo\n\n\t\t\t"); printf("7 - Guardar Projeto\n\n\t\t\t"); printf("8 - Guardar Projeto em binario\n\n\t\t\t"); printf("9 -Ler Ficheiro (binario)\n\n\t\t\t"); printf("0 - Sair\n\n"); } //MAIN int main() { int op, cod,codigo=1; listacandid lista = NULL; char title1[100]; char institui[100]; do { system("cls"); menu(); scanf("%d",&op); switch (op) { case 1: lista = criar_projeto(lista); printf("op1\n"); break; case 2: { listar_projeto(lista); } break; case 3: { printf("Introduza o codigo do projecto a procurar\n"); scanf("%d",&cod); mostrarcandidatoescolhido_porcodigo(lista,cod); system("pause"); } break; case 4: { printf("Introduza o titulo do projecto a procurar\n"); fflush(stdin); fgets(title1,100,stdin); title1[strlen(title1)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_portitulo(lista, title1); } break; case 5: { printf("Introduza a instituição o projecto a procurar\n"); fflush(stdin); fgets(institui,100,stdin); title1[strlen(institui)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_porinstituicao(lista,institui); } break; case 6: { save_proj(lista); printf("op8\n"); } break; case 7: { Binario(lista); Codigo_Bin(codigo); printf("op9\n"); } break; default: printf("Por favor introduza uma opção válida\n"); break; } } while(op!=0); } Se apagar e por isto: listacandid add_lista_proj(listacandid lista, projetos p){ listacandid novalista; listacandid atual = lista; listacandid anterior=NULL; while( atual!=NULL ) { anterior=atual; atual=atual->seguinte; } novalista=(listacandid)malloc(sizeof(tCell)); novalista->candid=p; novalista->seguinte=atual; Da me este erro esquisito. 542 void value not ignored as it ought to be Edited July 8, 2012 at 06:39 PM by pmg LP adicionada aos GeSHis Link to comment Share on other sites More sharing options...
polska Posted July 8, 2012 at 03:53 PM Report Share #467912 Posted July 8, 2012 at 03:53 PM Não prestaste muita atenção ao que te disse mas no entanto .. O erro é com o apontador p1, tu declaraste-o , mas não o inicializaste, já por norma deves inicializar sempre um apontador, experimenta inicializá-lo a NULL . Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
tonelol1 Posted July 8, 2012 at 04:01 PM Author Report Share #467914 Posted July 8, 2012 at 04:01 PM (edited) #include <stdio.h> #include <stdlib.h> #include <string.h> #define maximo 500 //variavel global int code=0; typedef struct projeto { char palavra_chave1[50]; char palavra_chave2[50]; char palavra_chave3[50]; char palavra_chave4[50]; char palavra_chave5[50]; int codigo; char titulo[50]; char instituicao[50]; char investigador[50]; int duracao; int equipamentos; int bolsas; int consumiveis; int consultores; int deslocacoes; int gastos_gerais; int originalidade; int qualidade; int idoneidade; int exequibilidade; int classificador; int gastos; } candidato, *projetos; typedef struct lista{ projetos candid; struct lista *seguinte; }tCell, *listacandid; listacandid add_lista_proj(listacandid lista, projetos p){ listacandid novalista; listacandid atual = lista; listacandid anterior=NULL; while( atual!=NULL ) { anterior=atual; atual=atual->seguinte; } novalista=(listacandid)malloc(sizeof(tCell)); novalista->candid=p; novalista->seguinte=atual; if(anterior!=NULL){ anterior->seguinte=novalista; } else { lista=novalista; } return lista; } //CRIA void criar_projeto(listacandid lista) { int num,soma; double media_avaliacao,valor1,valor2,valor3; projetos p1; fflush(stdin); printf("Introduza o titulo: "); fgets(p1->titulo,50,stdin); p1->titulo[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza a instuituicao proponente: "); fgets(p1->instituicao,50,stdin); p1->instituicao[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza o nome do investigador responsavel: "); fgets(p1->investigador,50,stdin); p1->investigador[strlen(p1->investigador)-1] = '\0'; printf("\nIntroduza a duracao do projecto(em anos): "); scanf("%d",p1->duracao); fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave1,50,stdin); p1->palavra_chave1[strlen(p1->palavra_chave1)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave2,50,stdin); p1->palavra_chave2[strlen(p1->palavra_chave2)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave3,50,stdin); p1->palavra_chave3[strlen(p1->palavra_chave3)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave4,50,stdin); p1->palavra_chave4[strlen(p1->palavra_chave4)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave5,50,stdin); p1->palavra_chave5[strlen(p1->palavra_chave5)-1] = '\0'; printf("\nIntroduza o valor para os gastos em compra de equipamento: "); scanf("%d",p1->equipamentos); printf("\nIntroduza o valor para os gastos na bolsa: "); scanf("%d",p1->bolsas); printf("\nIntroduza o valor para os gastos com consumiveis: "); scanf("%d",p1->consumiveis); printf("\nIntroduza o valor para os gastos com consultores: "); scanf("%d",p1->consultores); printf("\nIntroduza o valor para os gastos com deslocacoes: "); scanf("%d",p1->deslocacoes); printf("\nIntroduza o valor para os gastos gerais: "); scanf("%d",p1->gastos_gerais); soma=p1->equipamentos+p1->bolsas+p1->consumiveis+p1->consultores+p1->deslocacoes+p1->gastos_gerais; printf("\nGASTOS FINAIS: %d EUROS\n",soma); printf("\nIntroduza o classificador 1, 2 ou 3!"); scanf("%d",p1->classificador); printf("\nIntroduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->originalidade); printf("\nIntroduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->qualidade); printf("\nIntroduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->idoneidade); printf("\nIntroduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->exequibilidade); media_avaliacao=(p1->originalidade+p1->qualidade+p1->idoneidade+p1->exequibilidade)/4; printf("\nAVALIACOES FINAIS: %d\n",media_avaliacao); lista = add_lista_proj(lista,p1); if (media_avaliacao<3) { printf("\nPROJECTO REJEITADO!!\n"); } else if (media_avaliacao==3) { valor1=0.3*soma; printf("\nSubsidio no valor de %0.2f\n",valor1); } else if (media_avaliacao==4) { valor2=0.75*soma; printf("\nSubsidio no valor de %0.2f\n",valor2); } else if ( media_avaliacao==5) { valor3=1*soma; printf("\nSubsidio no valor de %0.2f\n",valor3); } } //LISTA void listar_projeto(listacandid lista){ printf("\n-------- LISTAGEM ------------\n"); if((lista )!= NULL) //candidato inserido { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); lista = lista->seguinte; } } //LISTAR POR CODIGO void mostrarcandidatoescolhido_porcodigo(listacandid lista,int procurar_codigo) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->codigo == procurar_codigo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR TITULO void mostrarcandidatoescolhido_portitulo(listacandid lista,char procurar_titulo[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->titulo == procurar_titulo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR INSTITUICAO void mostrarcandidatoescolhido_porinstituicao(listacandid lista,char procurar_instituicao[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->instituicao == procurar_instituicao) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //REMOVER POR CODIGO void removerAlunoEscolhido_porcodigo(listacandid lista, int remover_codigo) { int i=0; int encontrado=0; for(i=0;i<maximo;i++) { if(lista->candid->codigo == remover_codigo) { free(lista); lista=NULL; encontrado=1; break; } } if(encontrado==0) //!encontrado printf("O aluno não existe\n"); } //LOAD void loadD() { FILE *f = fopen("dadosProjeto.txt","rt"); char str[100]; int i=0; int num; listacandid lista1; if(f!=NULL) { while(!feof(f)) //ficheiro aberto com sucesso { fgets(str,100,f); if(i==5) { criar_projeto(lista1); i=0; } } } } // BINARIO void Binario(listacandid lista) { FILE *f = fopen("listagem_bin.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fwrite(&(lista->candid),sizeof(projeto),1,f); lista=lista->seguinte; } } fclose(f); } void Codigo_Bin(int cod) { FILE *f = fopen("codigo.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { fwrite(&(cod),sizeof(int),1,f); } fclose(f); } //Guardar Projetos void save_proj(listacandid lista) { double valor; FILE *f = fopen("lista.txt","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fprintf(f,"\n"); fprintf(f,"Codigo:%d\n", lista->candid->codigo); fprintf(f,"Titulo: %s\n ", lista->candid->titulo); fprintf(f,"Instituicao Proponente: %s\n ", lista->candid->instituicao); fprintf(f,"Nome do investigador: %s\n ", lista->candid->investigador); fprintf(f,"Duracao Projecto: %d\n", lista->candid->duracao); fprintf(f,"Palavra Chave1: %s\n ", lista->candid->palavra_chave1); fprintf(f,"Palavra Chave2: %s\n ",lista->candid->palavra_chave2); fprintf(f,"Palavra Chave3: %s\n ",lista->candid->palavra_chave3); fprintf(f,"Palavra Chave4: %s\n ",lista->candid->palavra_chave4); fprintf(f,"Palavra Chave5: %s\n ",lista->candid->palavra_chave5); fprintf(f,"Compra Equipamento: %.2d\n", lista->candid->equipamentos); fprintf(f,"Bolsa: %.2d\n", lista->candid->bolsas); fprintf(f,"Despesas de consumiveis: %.2d\n", lista->candid->consumiveis); fprintf(f,"Despesas consultores: %.2d\n", lista->candid->consultores); fprintf(f,"Deslocacoes: %.2d\n", lista->candid->deslocacoes); fprintf(f,"Gastos gerais: %.2d\n", lista->candid->gastos_gerais); fprintf(f,"Total: %.2d\n", valor); fprintf(f,"Classificacao: %d\n", lista); fprintf(f,"\n------------------------\n"); lista = lista->seguinte; } } fclose(f); save_proj(lista); } //MENU void menu() { printf("\n\n\t\t ================ MENU ================\n\n\n\t\t\t"); printf("1 - Inserir Projeto\n\n\t\t\t"); printf("2 - Listar projeto\n\n\t\t\t"); printf("3 - Listar Projeto por codigo\n\n\t\t\t"); printf("4 - Listar Projeto por titulo\n\n\t\t\t"); printf("5 - Listar Projeto por instituiçao \n\n\t\t\t"); printf("6 - Avaliar Projeto por codigo\n\n\t\t\t"); printf("7 - Guardar Projeto\n\n\t\t\t"); printf("8 - Guardar Projeto em binario\n\n\t\t\t"); printf("9 -Ler Ficheiro (binario)\n\n\t\t\t"); printf("0 - Sair\n\n"); } //MAIN int main() { int op, cod,codigo=1; listacandid lista = NULL; char title1[100]; char institui[100]; do { system("cls"); menu(); scanf("%d",&op); switch (op) { case 1: lista = criar_projeto(lista); printf("op1\n"); break; case 2: { listar_projeto(lista); } break; case 3: { printf("Introduza o codigo do projecto a procurar\n"); scanf("%d",&cod); mostrarcandidatoescolhido_porcodigo(lista,cod); system("pause"); } break; case 4: { printf("Introduza o titulo do projecto a procurar\n"); fflush(stdin); fgets(title1,100,stdin); title1[strlen(title1)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_portitulo(lista, title1); } break; case 5: { printf("Introduza a instituição o projecto a procurar\n"); fflush(stdin); fgets(institui,100,stdin); title1[strlen(institui)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_porinstituicao(lista,institui); } break; case 6: { save_proj(lista); printf("op8\n"); } break; case 7: { Binario(lista); Codigo_Bin(codigo); printf("op9\n"); } break; default: printf("Por favor introduza uma opção válida\n"); break; } } while(op!=0); } Se apagar e por isto: listacandid add_lista_proj(listacandid lista, projetos p){ listacandid novalista; listacandid atual = lista; listacandid anterior=NULL; while( atual!=NULL ) { anterior=atual; atual=atual->seguinte; } novalista=(listacandid)malloc(sizeof(tCell)); novalista->candid=p; novalista->seguinte=atual; Da me este erro esquisito. 542 void value not ignored as it ought to be Edited July 8, 2012 at 06:40 PM by pmg LP adicionada aos GeSHis Link to comment Share on other sites More sharing options...
polska Posted July 8, 2012 at 04:05 PM Report Share #467916 Posted July 8, 2012 at 04:05 PM Não conheço esse erro, contudo vê a resposta a esta pergunta . Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
tonelol1 Posted July 8, 2012 at 04:27 PM Author Report Share #467919 Posted July 8, 2012 at 04:27 PM (edited) #include <stdio.h> #include <stdlib.h> #include <string.h> #define maximo 500 //variavel global int code=0; typedef struct projeto { char palavra_chave1[50]; char palavra_chave2[50]; char palavra_chave3[50]; char palavra_chave4[50]; char palavra_chave5[50]; int codigo; char titulo[50]; char instituicao[50]; char investigador[50]; int duracao; int equipamentos; int bolsas; int consumiveis; int consultores; int deslocacoes; int gastos_gerais; int originalidade; int qualidade; int idoneidade; int exequibilidade; int classificador; int gastos; } candidato, *projetos; typedef struct lista{ projetos candid; struct lista *seguinte; }tCell, *listacandid; listacandid add_new_proj(listacandid lista, projetos p1) { listacandid novo; listacandid atual = lista; listacandid anterior = NULL; while(atual != NULL ) { anterior = atual; atual = atual->seguinte; } novo = (listacandid)malloc(sizeof(tCell)); novo->candid = p1; novo->seguinte = atual; if(anterior != NULL) { anterior->seguinte = novo; } else { lista = novo; } return lista; } //CRIA void criar_projeto(listacandid lista) { int num,soma; double media_avaliacao,valor1,valor2,valor3; projetos p1; fflush(stdin); printf("Introduza o titulo: "); fgets(p1->titulo,50,stdin); p1->titulo[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza a instuituicao proponente: "); fgets(p1->instituicao,50,stdin); p1->instituicao[strlen(p1->titulo)-1] = '\0'; fflush(stdin); printf("\nIntroduza o nome do investigador responsavel: "); fgets(p1->investigador,50,stdin); p1->investigador[strlen(p1->investigador)-1] = '\0'; printf("\nIntroduza a duracao do projecto(em anos): "); scanf("%d",p1->duracao); fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave1,50,stdin); p1->palavra_chave1[strlen(p1->palavra_chave1)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave2,50,stdin); p1->palavra_chave2[strlen(p1->palavra_chave2)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave3,50,stdin); p1->palavra_chave3[strlen(p1->palavra_chave3)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave4,50,stdin); p1->palavra_chave4[strlen(p1->palavra_chave4)-1] = '\0'; fflush(stdin); printf("\nIntroduza a palavra chave: "); fgets(p1->palavra_chave5,50,stdin); p1->palavra_chave5[strlen(p1->palavra_chave5)-1] = '\0'; printf("\nIntroduza o valor para os gastos em compra de equipamento: "); scanf("%d",p1->equipamentos); printf("\nIntroduza o valor para os gastos na bolsa: "); scanf("%d",p1->bolsas); printf("\nIntroduza o valor para os gastos com consumiveis: "); scanf("%d",p1->consumiveis); printf("\nIntroduza o valor para os gastos com consultores: "); scanf("%d",p1->consultores); printf("\nIntroduza o valor para os gastos com deslocacoes: "); scanf("%d",p1->deslocacoes); printf("\nIntroduza o valor para os gastos gerais: "); scanf("%d",p1->gastos_gerais); soma=p1->equipamentos+p1->bolsas+p1->consumiveis+p1->consultores+p1->deslocacoes+p1->gastos_gerais; printf("\nGASTOS FINAIS: %d EUROS\n",soma); printf("\nIntroduza o classificador 1, 2 ou 3!"); scanf("%d",p1->classificador); printf("\nIntroduza a nota da Originalidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->originalidade); printf("\nIntroduza a nota da Qualidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->qualidade); printf("\nIntroduza a nota da Idoneidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->idoneidade); printf("\nIntroduza a nota da Exequilibidade em decimal! N=1, M=2, S=3, B=4, E=5: "); scanf("%d",p1->exequibilidade); media_avaliacao=(p1->originalidade+p1->qualidade+p1->idoneidade+p1->exequibilidade)/4; printf("\nAVALIACOES FINAIS: %d\n",media_avaliacao); lista = add_new_proj(lista,p1); if (media_avaliacao<3) { printf("\nPROJECTO REJEITADO!!\n"); } else if (media_avaliacao==3) { valor1=0.3*soma; printf("\nSubsidio no valor de %0.2f\n",valor1); } else if (media_avaliacao==4) { valor2=0.75*soma; printf("\nSubsidio no valor de %0.2f\n",valor2); } else if ( media_avaliacao==5) { valor3=1*soma; printf("\nSubsidio no valor de %0.2f\n",valor3); } } //LISTA void listar_projeto(listacandid lista){ printf("\n-------- LISTAGEM ------------\n"); if((lista )!= NULL) //candidato inserido { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); lista = lista->seguinte; } } //LISTAR POR CODIGO void mostrarcandidatoescolhido_porcodigo(listacandid lista,int procurar_codigo) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->codigo == procurar_codigo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR TITULO void mostrarcandidatoescolhido_portitulo(listacandid lista,char procurar_titulo[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->titulo == procurar_titulo) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //LISTAR POR INSTITUICAO void mostrarcandidatoescolhido_porinstituicao(listacandid lista,char procurar_instituicao[50]) { int encontrado=0; if (lista= NULL ) { printf(" Lista Vazia!"); } else { while ( lista != NULL && encontrado==0) { if(lista->candid->instituicao == procurar_instituicao) { printf("CODIGO:%d\n",lista->candid->codigo); printf("TITULO:%s\n",lista->candid->titulo); printf("INSTITUICAO:%s\n",lista->candid->instituicao); printf("INVESTIGADOR:%s\n",lista->candid->investigador); printf("DURACAO:%d\n",lista->candid->duracao); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave1); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave2); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave3); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave4); printf("PALAVRAS_CHAVE:%s\n",lista->candid->palavra_chave5); printf("EQUIPAMENTO:%d\n",lista->candid->equipamentos); printf("BOLSA:%d\n",lista->candid->bolsas); printf("CONSUMIVEIS:%d\n",lista->candid->consumiveis); printf("CONSULTORES:%d\n",lista->candid->consultores); printf("DESLOCACOES:%d\n",lista->candid->deslocacoes); printf("GASTOS GERAIS:%d\n",lista->candid->gastos_gerais); printf("ORIGINALIDADE:%d\n",lista->candid->originalidade); printf("QUALIDADE:%d\n",lista->candid->qualidade); printf("IDONEIDADE:%d\n",lista->candid->idoneidade); printf("EXEQUIBILIDADE:%d\n",lista->candid->exequibilidade); } } } lista=lista->seguinte; } //REMOVER POR CODIGO void removerAlunoEscolhido_porcodigo(listacandid lista, int remover_codigo) { int i=0; int encontrado=0; for(i=0;i<maximo;i++) { if(lista->candid->codigo == remover_codigo) { free(lista); lista=NULL; encontrado=1; break; } } if(encontrado==0) //!encontrado printf("O aluno não existe\n"); } //LOAD void loadD() { FILE *f = fopen("dadosProjeto.txt","rt"); char str[100]; int i=0; int num; listacandid lista1; if(f!=NULL) { while(!feof(f)) //ficheiro aberto com sucesso { fgets(str,100,f); if(i==5) { criar_projeto(lista1); i=0; } } } } // BINARIO void Binario(listacandid lista) { FILE *f = fopen("listagem_bin.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fwrite(&(lista->candid),sizeof(projeto),1,f); lista=lista->seguinte; } } fclose(f); } void Codigo_Bin(int cod) { FILE *f = fopen("codigo.dat","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { fwrite(&(cod),sizeof(int),1,f); } fclose(f); } //Guardar Projetos void save_proj(listacandid lista) { double valor; FILE *f = fopen("lista.txt","w"); if(f == NULL) { printf("Imposivel abrir!\n"); } else { while(lista != NULL) { fprintf(f,"\n"); fprintf(f,"Codigo:%d\n", lista->candid->codigo); fprintf(f,"Titulo: %s\n ", lista->candid->titulo); fprintf(f,"Instituicao Proponente: %s\n ", lista->candid->instituicao); fprintf(f,"Nome do investigador: %s\n ", lista->candid->investigador); fprintf(f,"Duracao Projecto: %d\n", lista->candid->duracao); fprintf(f,"Palavra Chave1: %s\n ", lista->candid->palavra_chave1); fprintf(f,"Palavra Chave2: %s\n ",lista->candid->palavra_chave2); fprintf(f,"Palavra Chave3: %s\n ",lista->candid->palavra_chave3); fprintf(f,"Palavra Chave4: %s\n ",lista->candid->palavra_chave4); fprintf(f,"Palavra Chave5: %s\n ",lista->candid->palavra_chave5); fprintf(f,"Compra Equipamento: %.2d\n", lista->candid->equipamentos); fprintf(f,"Bolsa: %.2d\n", lista->candid->bolsas); fprintf(f,"Despesas de consumiveis: %.2d\n", lista->candid->consumiveis); fprintf(f,"Despesas consultores: %.2d\n", lista->candid->consultores); fprintf(f,"Deslocacoes: %.2d\n", lista->candid->deslocacoes); fprintf(f,"Gastos gerais: %.2d\n", lista->candid->gastos_gerais); fprintf(f,"Total: %.2d\n", valor); fprintf(f,"Classificacao: %d\n", lista); fprintf(f,"\n------------------------\n"); lista = lista->seguinte; } } fclose(f); save_proj(lista); } //MENU void menu() { printf("\n\n\t\t ================ MENU ================\n\n\n\t\t\t"); printf("1 - Inserir Projeto\n\n\t\t\t"); printf("2 - Listar projeto\n\n\t\t\t"); printf("3 - Listar Projeto por codigo\n\n\t\t\t"); printf("4 - Listar Projeto por titulo\n\n\t\t\t"); printf("5 - Listar Projeto por instituiçao \n\n\t\t\t"); printf("6 - Avaliar Projeto por codigo\n\n\t\t\t"); printf("7 - Guardar Projeto\n\n\t\t\t"); printf("8 - Guardar Projeto em binario\n\n\t\t\t"); printf("9 -Ler Ficheiro (binario)\n\n\t\t\t"); printf("0 - Sair\n\n"); } //MAIN int main() { int op, cod,codigo=1; listacandid lista = NULL; char title1[100]; char institui[100]; do { system("cls"); menu(); scanf("%d",&op); switch (op) { case 1: criar_projeto(lista); printf("op1\n"); break; case 2: { listar_projeto(lista); } break; case 3: { printf("Introduza o codigo do projecto a procurar\n"); scanf("%d",&cod); mostrarcandidatoescolhido_porcodigo(lista,cod); system("pause"); } break; case 4: { printf("Introduza o titulo do projecto a procurar\n"); fflush(stdin); fgets(title1,100,stdin); title1[strlen(title1)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_portitulo(lista, title1); } break; case 5: { printf("Introduza a instituição o projecto a procurar\n"); fflush(stdin); fgets(institui,100,stdin); title1[strlen(institui)-1]='\0'; fflush(stdin); mostrarcandidatoescolhido_porinstituicao(lista,institui); } break; case 6: { save_proj(lista); printf("op8\n"); } break; case 7: { Binario(lista); Codigo_Bin(codigo); printf("op9\n"); } break; default: printf("Por favor introduza uma opção válida\n"); break; } } while(op!=0); } O programa crasha quando tento escrever o titulo. Alguma sugestao? Quem tiver o programa para compilar que copie. Fica mais facil Edited July 8, 2012 at 06:10 PM by tonelol1 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 8, 2012 at 05:43 PM Report Share #467926 Posted July 8, 2012 at 05:43 PM 1º - já te disseram para usares a tag "code=c" do geshi 2º - o código que apresentas é demasiado comprido e mal indentado para tentar ler 3º - indica qual a linha do código em que o compilador apresenta o erro IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
tonelol1 Posted July 8, 2012 at 06:10 PM Author Report Share #467936 Posted July 8, 2012 at 06:10 PM 1º - já te disseram para usares a tag "code=c" do geshi 2º - o código que apresentas é demasiado comprido e mal indentado para tentar ler 3º - indica qual a linha do código em que o compilador apresenta o erro Basicamente na main(no fim do programa) aparece case:1 criar_projeto(lista). Basicamente ele pede titulo ( na funcao criar_projeto); escrevo uma palavra e o programa crasha. Link to comment Share on other sites More sharing options...
Flinger Posted July 9, 2012 at 08:44 AM Report Share #467994 Posted July 9, 2012 at 08:44 AM (edited) Vê os scanfs todos da função cria_projecto. O scanf pede o endereço da variável para onde tu queres gravar os valores, tu estás a passar o valor da variável, não um apontador para ela. Não te dou certeza que seja só isso, mas tens aí pelo menos meia-dúzia de erros que te vão dar resultados imprevistos. Mais: case 1: lista = criar_projeto(lista); printf("op1\n"); A tua função criar_projecto está declarada como void criar_projeto(listacandid lista) Retorna void e tu estás a tentar atribuir esse valor a uma variável... dá o erro que te dá na compilação. Na função binário, na linha fwrite(&(lista->candid),sizeof(projeto),1,f); A variável projecto não existe. Devias querer struct projecto. Mais abaixo, na mesma função, tens isto: fprintf(f,"Classificacao: %d\n", lista); Não podes mandar imprimir uma estrutura... tens que imprimir campo a campo. Tens uma série de comparações if (lista= NULL ) Como é lógico tens de usar o operador == e não o = (atribuição). Além disto tudo tens uma série de printf com o formato errado, em que mandas imprimir doubles, floats, etc, sempre como inteiros (%d). Vê aqui, na secção The conversion specifier para veres como usar o formato para diferentes tipos. Edited July 9, 2012 at 08:57 AM by Flinger Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 9, 2012 at 08:53 AM Report Share #467997 Posted July 9, 2012 at 08:53 AM projetos p1; fflush(stdin); printf("Introduza o titulo: "); fgets(p1->titulo,50,stdin); p1 é um ponteiro não inicializado (é esta a razão porque muitas pessoas não gostam de usar o typedef, esconde o verdadeiro tipo da variável). IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Flinger Posted July 9, 2012 at 09:01 AM Report Share #468001 Posted July 9, 2012 at 09:01 AM Parece que peguei numa versão anterior do código. De qualquer forma a maioria dos problemas mantêm-se. Link to comment Share on other sites More sharing options...
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