Ir para conteúdo
Fórum Script Brasil

Licenciatura Computacao

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que Licenciatura Computacao postou

  1. então, 'n' e uma variaval global que inicia em 0 e 'ordem' esta declarada mais no meio da funçao. Estou a dias fazendo esse programa e agora já não sei o que fazer. se puderes me ajudar posso passar o codigo inteiro, mas teria q ser por e-mail, porque tem mais de 200 linhas. att:
  2. Boa tarde. Gente to construindo uma trabalho para a faculdade e estou com o seguinte problema. fiz um while para verificar se o há algum codigo repetido na lista. ok ta funcionando mas quando digito um numero que no caso não e repetido o programa da erro. alguém pode dar uma ajuda. segue a funcao adicionar. void adicionar() { ptrnovo=(struct prs*) malloc(sizeof(struct prs)); digitar(); int cont=1; char codl[30]; if (ptrprim==(struct prs*)NULL)//testa se a lista esta vazia { ptrprim=ptrant=ptratual=ptrnovo; ptratual -> ptrprox=(struct prs*) NULL; n++; printf("\nInformacoes armazenadas com sucesso!!!"); } else { //não é o primeiro codigo // codl é quem recebe o codigo// while(strcmp(ptratual->codl, ptrnovo -> codl)!=0){ ptrant=ptratual; ptratual=ptratual->ptrprox; if(cont==n) break; cont++;} if (strcmp(ptratual->codl, ptrnovo -> codl)==0) printf("\nCodigo de Livro já cadastrado.\n"); if(cont==n+1){ int a=0,b=0,ordem=0,cont,i; ptratual=ptrprim; while(ordem==0) { //enquanto estiver fora de ordem cont=0; i=0; //reinicia os contadores while(cont==0) { a=ptrnovo->codl[i]; b=ptratual->codl[i]; //alterei aqui 19-11 as 15:19 if(a-b==0) i++; else cont=1; } //fim do while 2 if(cont==1) { a=ptrnovo->codl[i]; b=ptratual->codl[i]; if(a>b) { if(ptratual->ptrprox==(struct prs *)NULL) { ptrnovo->ptrprox=(struct prs *)NULL; ptratual->ptrprox=ptrnovo; ordem=1; n++;} ptrant=ptratual; ptratual=ptratual->ptrprox; } if(a<b) { if(ptratual==ptrprim) {ptrnovo->ptrprox=ptrprim; ptrprim=ptrnovo;} else { if(ptratual->ptrprox==(struct prs *)NULL){ ptrnovo->ptrprox=ptrant->ptrprox; ptrant->ptrprox=ptrnovo;} else {ptrnovo->ptrprox=ptratual; ptrant->ptrprox=ptrnovo;}} /*fim if */ ordem=1; n++;}/*fim do else */ }//fim do if else ptratual=ptratual->ptrprox; } //fim do while 1 printf("\nInformacoes armazenadas com sucesso!!!"); } //fim do else } getch(); } //fim da fun‡ao
  3. Boa noite a todos... Bom sou novo aqui no forum. Estou fazendo um trabalho em C onde é necessario verificar se a matriz e de permutacao. ex matriz permutacao.(so pode ocorre 0 e 1 e não pode ter mais que 1 em cada coluna. 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 já estou a dois dias tentando fazer mas não connsigo fazer funcionar... gostaria que meu return( ) fosse 0 ou 1 dependendo resultado para poder escreever na mein() o resultado. Usei dois vetores mas não sei ainda direito como posso somar para indentificar. Soluçao para o problema era: quando eu esta zerando os vetores so zerava a primeira posicao, ai então sempre havia sujeira na memoria onde ocorria o erro. abaixo o codido correto com a funcao soma e permutacao. int soma_lc(int mat[lmax][cmax],int l,int c,int somal[],int somac[]) { int x,y; for (x=0; x<l; x++) {somal[x]=0; somac[x]=0; } for (x=0;x<l;x++) for (y=0;y<c; y++) { somal[x]=somal[x]+mat[x][y]; somac[y]=somac[y]+mat[x][y]; } } //Funcao testa se e permutacao// int permutacao(int mat[lmax][cmax], int l, int c,int somal[],int somac[]) { int x,y,per=1; for (x=0;x<l;x++) if(somal[x]!=1 || somac[x]!=1) per=0; return(per); } Att.
×
×
  • Criar Novo...