Magux 0 Denunciar post Postado Maio 26, 2009 Estou tendo um problema com o rand(), ele tá me dando uns bugs sinistros na hora do laço mais em baixo, se eu tirá-lo e colocar os dados manualmente funciona, mas pra testar todo o código fica inviável. Pq mais pra frente a genta tá trabalhando com matrizes 10x10 e 20x20... #include <stdio.h> #include <stdlib.h> #include <math.h> int main (void){ int M[7][4]; int i,j,m,pi,pj; //Montando uma Matriz M insirindo valores, coloquei a opção de números randômicos até 20 para teste: for(i=0;i<7;i++){ for(j=0;j<4;j++){ M[i][j]= rand()%20; //printf("Insira M[%d][%d]:",i,j); //scanf("%d",&M[i][j]); }} //Achando e escrevendo o menor e sua posição: m= M[0][0]; for(i=0;i<7;i++){ for(j=0;j<4;j++){ if (M[i][j]<m){ m= M[i][j]; pi= i; pj= j; }}} printf("O menor valor é M[%d][%d]=%d.",pi,pj,M[pi][pj]); Compartilhar este post Link para o post Compartilhar em outros sites
Tarantula 0 Denunciar post Postado Maio 26, 2009 A pergunta é: "E se o menor valor de toda matriz está no M[0][0] ?" Quando o zero estiver nesta posição, ele não vai inicializar o "pi" e nem o "pj", que estarão com lixo de memória, assim ele irá acessar M[237824][23847234] por exemplo, e causará uma segfault =) Inicialize o pi e pj com zero e tudo vai funcionar ok. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Maio 26, 2009 defina "bugs sinistros" por favor... não se esqueça de alimentar o gerador... srand(int); eu aconselho: srand(time(NULL)); se você tiver em um linux, leia os valores de /dev/random para valores realmente aleatórios Compartilhar este post Link para o post Compartilhar em outros sites
Magux 0 Denunciar post Postado Maio 26, 2009 A pergunta é: "E se o menor valor de toda matriz está no M[0][0] ?"OK arrumado! defina "bugs sinistros" por favor... não se esqueça de alimentar o gerador... bugs sinsitros ele não calcula nada direito com os valores aleatórios, os valores são inserido corretos, mas na hora de devolver o calculo ele devolve números aleatórios. essa função srand eu não aprendemos, o rand ele nos mostrou e falou para usássemos, mas sempre dá erros de calculo quando usamos ela, algum problema recorrendo no Dev C++ talvez? Compartilhar este post Link para o post Compartilhar em outros sites
Tarantula 0 Denunciar post Postado Maio 26, 2009 Como assim erro de cálculo com números aleatórios ? Compartilhar este post Link para o post Compartilhar em outros sites
Magux 0 Denunciar post Postado Maio 26, 2009 o rand entra com números aleatório certo? no caso tu pode definir o limite superior através do módulo rand()%20 números do modulo de 20. ou seja 0 a 19 o problema é que por algum motivo quando eu insiro os valores da matriz 1 a 1, os calculos a posteriore são feitos corretamente (média, soma etc), caso eu utilize rand, os valores são arbitrardos corretos porém na hora de fazer os calculos sai uns números impossível tipo: média de 3 termos, 4 5 7, sai média 2342235 o problema é que com o mesmo código se eu inserir os números a média sai certo. tou achando que é problema com o DevC++ Compartilhar este post Link para o post Compartilhar em outros sites
Tarantula 0 Denunciar post Postado Maio 26, 2009 Cara, com certeza absoluta não é o front-end Devcpp ou o compilador, pode postar o código aqui pra gente resolver ? Compartilhar este post Link para o post Compartilhar em outros sites
Magux 0 Denunciar post Postado Maio 26, 2009 Mandei as questões pro meu parceiro de trabalho, tão logo ele mande de volta eu posto aqui pra nós.. Existe alguma ferramenta que possa 2 pessoas programarem o mesmo arquivo sem precisar ficar mandando arquivo umas pras outras? E existe algum debugger online? Ou que apenas verifique o codigo em busca de irregularidades (arnaldo cesar coelho, A REGRA È CLARA!!!!) agradeço a disponibilidade desde já Compartilhar este post Link para o post Compartilhar em outros sites
Tarantula 0 Denunciar post Postado Maio 26, 2009 Usem um controle de versão como o CSV ou SVN, ou se você fala de editor colaborativo eu conheço o Gobby. Compartilhar este post Link para o post Compartilhar em outros sites
Magux 0 Denunciar post Postado Junho 1, 2009 Obrigado, realmente o problema não era no rand() que eu estava usando mas na hora de ler os valores eu esqueci de começar a contar a partir do zero na matriz. Obrigado pela ajuda Victor e Tarantula. Como faço pra colocar respondido lá em cima? Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Junho 1, 2009 Pode deixar que do "Resolvido" eu cuido! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Que bom que você resolveu. [] Compartilhar este post Link para o post Compartilhar em outros sites