ricardo99 0 Denunciar post Postado Novembro 2, 2012 Bom tenho de multiplicar o valor de uma matriz por um escalar a minha escolha, ate ai tudo certo só que usando função void não funciona. #include<stdio.h> #define maxl 3 #define maxc 3 void criar_matriz(){ int matriz[maxl][maxc]; int i=0,j=0; for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ matriz[i][j]=i+j; } } } void multiplicar_matriz(){ int matriz[maxl][maxc]; int i=0,j=0; for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ matriz[i][j]=matriz[i][j]*2; } } } void imprimir_matriz(){ int i=0,j=0; for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ printf("%i ",matriz[i][j]); } printf("\n"); } } int main(){ criar_matriz(); multiplicar_matriz(); imprimir_matriz(); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Novembro 2, 2012 Você percebeu que declarou as mesmas variáveis em todas as funções? Posso estar errado (sou iniciante), mas você declarando uma variável dentro de uma função, ela será LOCAL e só usada naquela função e não no programa todo. O erro que estava retornando era "que a variável matriz dentro da função imprimir_matriz não havia sido declarada", porém ela foi, dentro de outra função. É recomendável declará-las logo abaixo das bibliotecas, tornando-as variáveis globais (usadas no programa inteiro). #include<stdio.h> #define maxl 3 #define maxc 3 int matriz[maxl][maxc], i, j; E, todas essas funções vão retornar algo para ser usada na função seguinte. Com o void, você está dizendo que aquela função não irá retornar nenhum valor. #include <stdio.h> #include <stdlib.h> #define maxl 3 #define maxc 3 int matriz[maxl][maxc], i, j; int criar_matriz(){ for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ matriz[i][j]=i+j; } } } int multiplicar_matriz(){ for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ matriz[i][j]=matriz[i][j]*2; } } } int imprimir_matriz(){ for(i=0;i<maxl;i++){ for(j=0;j<maxc;j++){ printf("%i ", matriz[i][j]); } printf("\n"); } } int main(){ criar_matriz(); multiplicar_matriz(); imprimir_matriz(); system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
ricardo99 0 Denunciar post Postado Novembro 2, 2012 Obrigado por me ajudar mas uma das restrições na construção deste código é que não poderia se criar variáveis globais(o que tornaria bem mas fácil) mesmo assim obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Novembro 4, 2012 Então você vai precisar trabalhar com ponteiros. Compartilhar este post Link para o post Compartilhar em outros sites
ricardo99 0 Denunciar post Postado Novembro 4, 2012 poderia mostrar como seria usando ponteiro ? Compartilhar este post Link para o post Compartilhar em outros sites