Jump to content

Crache em case ajuda pls


tonelol1
 Share

Recommended Posts

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

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

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 by pmg
LP adicionada ao GeSHi
Link to comment
Share on other sites

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

#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 by pmg
LP adicionada aos GeSHis
Link to comment
Share on other sites

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

#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 by pmg
LP adicionada aos GeSHis
Link to comment
Share on other sites

#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 by tonelol1
Link to comment
Share on other sites

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

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).

aqui, na secção The conversion specifier para veres como usar o formato para diferentes tipos.

Edited by Flinger
Link to comment
Share on other sites

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
 Share

×
×
  • 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.