Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
fabioigor

Duvida funçoes retornando e tendo parametro como matrizes[Resolvido]

Recommended Posts

Boa tarde pessoal é o seguinte vou postar aqui o meu programa ate o momento

#include <stdlib.h>
#include <stdio.h>

char imprime_matriz_borda(){
int linha=20, coluna=10, l, c;
char brinq[linha][coluna];
for(l=0;l<linha;l++){//for para imprimir linhas e colunas com O maisculo de acor com exercicio
for(c=0;c<coluna;c++){
if(l==0){
brinq[l][c]='O';//preenche coluna superior com O
}else{
if(l>=1 && c==0){
brinq[l][c]='O'; //preenche primeira coluna lateral com O
}else{
if(l>=0 && c==9){
brinq[l][c]='O';//preenche ultima coluna lateral com O
}else{
if(l==19){
brinq[l][c]='O';//preenche ultima linha com O
}else{
brinq[l][c]=' ';
}
}
}

}
printf("%c\t",brinq[l][c]); // imprime matriz completa na tela
}
}
return brinq[linha][coluna];
}


void sinal_indicado_matriz(char mat[20][10]){
int linha=20, coluna=10, l, c, posicao_um, posicao_dois;
//char brinq[linha][coluna];
do{ //primeiro do para certificar que usuário nao ira digita um aposição maior ou menor que a ultima linha e coluna da matriz
do{ //os quatros do's contando com este é para certificar que usuário nao ira digitar uma posição que é da borda da matriz
do{ // ja explicado
do{ // ja explicado
do{ // ja explicado
do{ // este do é caso o usuário queira sair ele aperta a letra f que sai da repetição e termina programa
printf("Digite um posiçao onde deseja colocar o sinal +:\t");
scanf("%d",&posicao_um);
scanf("%d",&posicao_dois);
if(posicao_um == 'f' || posicao_dois == 'f'){
system("pause");
//return 0;
}
if(posicao_um==0){ //ifs para emitir mensagem quando usuário digitar posiçao pertencente a borda da matriz
printf("Essa posição faz parte da borda. Digite outra diferente.\n");
}else{
if(posicao_um>=1 && posicao_dois==0){
printf("Essa posição faz parte da borda. Digite outra diferente.\n");
}else{
if(posicao_um>=0 && posicao_dois==9){
printf("Essa posição faz parte da borda. Digite outra diferente.\n");
}else{
if(posicao_um==19){
printf("Essa posição faz parte da borda. Digite outra diferente.\n");
}
}
}
}
mat[posicao_um][posicao_dois] = '+';
printf("\n");
for(l=0;l<linha;l++){ //for's para imprimir matriz com sinal de + na posição escolhida pelo usuário
for(c=0;c<coluna;c++){
printf("%c\t",mat[l][c]);
}
}
printf("\n");
}while(posicao_um != 'f' || posicao_dois != 'f');
}while(posicao_um == 19);
}while(posicao_um >=0 && c ==9);
}while(posicao_um >=1 && posicao_dois == 0);
}while(posicao_um == 0);
}while((posicao_um > 19 && posicao_dois > 9) || (posicao_um < 0 && posicao_dois > 0) );
}

int main(){
char x[20][10];
x[20][10] = imprime_matriz_borda();
sinal_indicado_matriz(x);

printf("\n");
system("pause");
return 0;
}

meu codigo quando estava todo no int main funcionava perfeitamente, depois que fui colacando funções na hora que é par imprimir a matriz imprime carcteres diferente, alguem pode me dizer onde está meu erro?

obrigado

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×