janielton 0 Denunciar post Postado Julho 8, 2007 Estou tendo dificuldade para elaborar essa parte de um trabalho. Nele é necessario varias vezes fazer o escalonamento de varias matrizes..entao queria criar uma funçao onde passamos uma matriz com os valores da matriz..e no final devolve a matriz ja escalonada.. alguem ajuda?? Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Lima (Aram) 0 Denunciar post Postado Julho 8, 2007 1 - É C ou Java?- Se for java, é só passar a matriz, feliz da vida.- Se for C/C++ só passar o ponteiro para a função, ou a matriz mesmo. Mas nessas linguagens é bom passar as dimensoes pro método tb. Compartilhar este post Link para o post Compartilhar em outros sites
janielton 0 Denunciar post Postado Julho 9, 2007 é em C, usando ponteiro logo pra economizar. Li uns manuais e consegui chegar a isso...so que ta dando errado: na hora de imprimir ele pega so o primeiro valor digitado e vai incrementando o valor e nao a memoria! #include <stdio.h>#include <stdlib.h>void preenxer(int **vet, int a, int b){int i,j;for (i=0;i<a;i++) { for (j=0;j<b;j++) { printf("%d elemento da %d linha", i+1,j+1); scanf("%d",*(vet)+(i*b)+j); } }}int main(){ int v,r,i,j; int *vet; printf("numero de variaveis?"); scanf("%d",&v); printf("numero de restriçoes"); scanf("%d",&r); vet = (int*) malloc(sizeof(int)*v*r); preenxer(&vet,r,v); printf("\n"); for (i=0;i<r;i++) { for (j=0;j<v;j++) { printf("%d elemento da %d linha: %d\n", i+1, j+1, *(vet)+(i*v)+j); } }} Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Lima (Aram) 0 Denunciar post Postado Julho 11, 2007 Você criou outra entrada no fórum e eu respondi lá... http://forum.imasters.com.br/index.php?act...&pid=824762 Compartilhar este post Link para o post Compartilhar em outros sites
Hazard325 0 Denunciar post Postado Junho 21, 2009 Opa galera eu sou novo aqui!!! mas queria resolver um problema que tenho é um trabalho onde tenho que criar um jogo da velha mas não é necessario IA http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif para ele basta as jogadas. O problema é que tnho que passar a matriz do jogo para as funçoes por referencia http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif e não consigo, fiz o que foi passado neste topico porem não deu certo talvez pq minha matriz é de caracteres #include<stdio.h> #include<conio.h> #include<stdlib.h> /**************************************************************** *Zera a Matriz (para não imprimir lixo de memória) * ****************************************************************/ void zera_matrix(char**matrix){ int i,j; for(i=1;i<=3;i++){ for(j=1;j<=3;j++){ matrix[i][j]=' '; } } } /**************************************************************** *Desenha Matriz na tela * ****************************************************************/ void mostra_jogo(char**matrix){ printf("\n C[1] C[2] C[3]\n"); printf(" L[1] %c | %c | %c",matrix[1][1],matrix[1][2],matrix[1][3]); printf("\n ----+----+----\n"); printf(" L[2] %c | %c | %c \n",matrix[2][1],matrix[2][2],matrix[2][3]); printf(" ----+----+----\n"); printf(" L[3] %c | %c | %c ",matrix[3][1],matrix[3][2],matrix[3][3]); } /**************************************************************** *Recebe Jogada do usuario * ****************************************************************/ void le_jogadaH(char**matrix){ int i,j,certifica; do{ printf("\n\nDigite as coordenadas de sua jogada indicando a linha(L) e a coluna(C)\n"); printf("L:");scanf("%d",&i); printf("C:");scanf("%d",&j); if(matrix[i][j]!=' '){ printf("\aJogada Nao permitida\nTente Outra Vez"); certifica=0; } else if((j>3)||(i>3)){ printf("Jogada nao permitida\n Tente Outra Vez"); certifica=0; } else certifica=1; }while(certifica==0); matrix[i][j]='x'; } /**************************************************************** *Executa a jogada da maquina * ****************************************************************/ void le_jogadaC(char**matrix){ int i,j; char confere; for(i=1;i<=3;i++){ for(j=1;j<=3;j++) if(matrix[i][j]==' ')break; if(matrix[i][j]==' ')break; } matrix[i][j]='O'; } /**************************************************************** *Confre se ha Ganhador * ****************************************************************/ char confere_ganhador(char**matrix){ int i,j; char empate; for(i=1; i<=3; i++){ /* verifica as linhas */ if(matrix[i][1]==matrix[i][2] && matrix[i][1]==matrix[i][3]){ return matrix[i][1]; } } for(j=1; j<=3; j++){ /* verifica as colunas */ if(matrix[1][j]==matrix[2][j] && matrix[1][j]==matrix[3][j]){ return matrix[1][j]; } } /* testa as diagonais */ if(matrix[1][1]==matrix[2][2] && matrix[2][2]==matrix[3][3]){ return matrix[1][1]; } if(matrix[1][3]==matrix[2][2] && matrix[2][2]==matrix[3][1]){ return matrix[1][3]; } /*testa se empatou*/ if(i*j==9){ matrix[i][j]='e'; return matrix[i][j]; } return ' '; } main(){ int i; char **matrix; matrix=(char**)malloc(sizeof(char)*3); for(i=0;i<3;i++) matrix[i]=(char*)malloc(sizeof(char)*3); char confere,opcao; int Ndejogada; confere=' '; while(true){ system("cls"); Ndejogada=0; //zera_matrix(matrix);//zera a matriz mostra_jogo(matrix);//imprime a matriz na tela do{ le_jogadaH(matrix);//le a jogada do usuario Ndejogada++;//Conta o numero de jogadas confere=confere_ganhador(matrix);//confere se o usuario ganhou if(confere!=' '){//se ele ganhou para o loop break; } le_jogadaC(matrix);//recebe a jogada do computador confere= confere_ganhador(matrix);//confere se a maquina ganhou system("cls"); mostra_jogo(matrix); if(Ndejogada>4){//Verifica se o Numero de jogadas e maior que 4 se for quer dizer que empatou confere='e'; } }while(confere==' ');//se a maquina ganhar para o loop system("cls"); mostra_jogo(matrix); if(confere=='x'){ printf("\n***********************\n*** O Jogador Ganhou***\n***********************"); } else if(confere=='O'){ printf("\n**************************\n*** O computador Ganhou***\n**************************"); } else if(confere=='e'){ printf("\n***************\n*** Empate ***\n***************"); } printf("Deseja Jogar novamente?\n(s)Para continuar\n(n) para sair\n"); scanf("%s",&opcao); if(opcao=='n') exit(0); } }O código esta ai se necessitar de mais informações me avise :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites