Boa tarde galera é o seguinte to com duvida em um codigo aqui, primeiramente fiz ele todo no int main e funcionou beleza, o programa pede para incialmente fazer uma matriz com bordas e com a posição digitada pelo usuário adicionar um + nessa posição
codigo no int main
#include <stdlib.h>
#include <stdio.h>
int main(){
int linha=20, coluna=10, l, c, posicao_um, posicao_dois, opcao, hor, ant_hor, vert, ant_ver;
char brinq[linha][coluna];
for(l=0;l<linha;l++){//for para imprimir linhas e colunas com O maisculo de acor com exercicio
printf("\n");
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
}
}
//printf("\n\n");
//Parte a e b do exercicio 5 para usa-la desative parte c
do{ //primeiro do para certificar que usuário não 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 não ira digitar uma posição que é da borda da matriz
do{ // já explicado
do{ // já explicado
do{ // já 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");
}
}
}
}
brinq[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
printf("\n");
for(c=0;c<coluna;c++){
printf("%c\t",brinq[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) );
Agora que estou tentando colocar ela em função está ocorrendo erro, o que estou errnado:
#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 não 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 não ira digitar uma posição que é da borda da matriz
do{ // já explicado
do{ // já explicado
do{ // já 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");
}
}
}
}
brinq[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",brinq[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];
imprime_matriz_borda();
sinal_indicado_matriz(x);
printf("\n");
system("pause");
return 0;
}
Pergunta
Fabin
Boa tarde galera é o seguinte to com duvida em um codigo aqui, primeiramente fiz ele todo no int main e funcionou beleza, o programa pede para incialmente fazer uma matriz com bordas e com a posição digitada pelo usuário adicionar um + nessa posição
codigo no int main
Agora que estou tentando colocar ela em função está ocorrendo erro, o que estou errnado: Editado por FabinLink para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.