Pesquisar na Comunidade
Mostrando resultados para as tags ''inca''.
Encontrado 2 registros
-
Boa tarde pessoal, desenvolvi esse algoritmo para verificar se uma matriz é inca ou não, ou seja se partindo do extremo superior esquerdo e seguindo em espiral o número seguinte é o sucessor inteiro do número anterior, meu algoritmo está dando que a matriz é errada quando eu não começo com o primeiro termo da matriz [1,1] sendo 1, gostaria de pedir um minuto da atenção e experiência de todos vocês sou grato desde já. algoritmo "Matriz Inca" var i,j,n,inicol,fimcol,inilin,fimlin,degrau:inteiro matriz:vetor[1..20,1..20] de inteiro eh_inca:logico inicio repita escreva("Escolha a dimensão da Matriz:") leia (n) se((n < 1)ou(n > 20))então escreval("A dimensão da matriz precisa estar entre 1 e 20") fimse ate ((n > 0 ) e (n < 21)) escreval("Matriz: ",n ," x ",n) escreval("Digite os numeros da Matriz abaixo:") para i de 1 ate n faca para j de 1 ate n faca escreval("Entre com o valor de matriz[",i,",",j,"]:") leia (matriz[i,j]) fimpara fimpara para i de 1 ate n faca escreval para j de 1 ate n faca escreva (matriz[i,j]) fimpara escreval fimpara inicol <-1 fimcol <-n inilin <-1 fimlin <-n degrau <-0 eh_inca <- verdadeiro enquanto ((eh_inca) e (inicol<fimcol) e (inilin<fimlin)) faca para i de inicol ate fimcol faca se (matriz[inilin,i] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara inilin <- inilin + 1 para i de inilin ate fimlin faca se (matriz[i,fimcol] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara fimcol <- fimcol - 1 para i de fimcol ate inicol passo -1 faca se (matriz[fimlin,i] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara fimlin <- fimlin - 1 para i de fimlin ate inilin passo -1 faca se (matriz[i,inicol] = degrau + 1) então degrau <- degrau + 1 senao eh_inca<-falso fimse fimpara inicol<-inicol + 1 fimenquanto se (eh_inca) então escreval ("Matriz é inca") senao escreval ("Matriz não é inca") fimse
-
Olá pessoal, mais uma das questões difíceis para iniciante, estou tendo dificuldades para encontrar os erros no algoritmo que desenvolvi, conto com a colaboração de todos, e serei grato a toda dica construtiva de vocês que são mais experientes. #include <stdio.h> #include <stdlib.h> int main(){ int logico,i,j,n,inicol,fimcol,inilin,fimlin,degrau; int matriz[20][20]; do{ printf("Escreva a dimensao da matriz:"); scanf("%d",&n); if((n<1)||(n>20)){ printf("A dimensao da matriz precisa estar entre 1 e 20\n"); } }while((n<1) || (n>20)); printf("A matriz informada e do tipo %dX%d\n",n,n); printf("Digite os numeros da matriz abaixo:\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("Entre com o valor de matriz["); printf("%d,",i); printf("%d]:",j); scanf("%d",&matriz[i][j]); } } for(i=1;i<=n;i++){ printf("\n"); for(j=1;j<=n;j++){ printf("%2d",matriz[i][j]); printf(" "); } printf("\n"); } inicol=1; fimcol=n; inilin=1; fimlin=n; degrau=0; logico=1; while((logico=1)&&(inicol<fimcol) && (inilin<fimlin)){ for(i=inicol;i=fimcol;i++){ if(matriz[inilin][i]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } } fimcol=(fimcol-1); for(i=fimcol;i=inicol;i--){ if(matriz[fimlin][i]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } } fimlin=(fimlin-1); for(i=fimlin;i=inilin;i--){ if(matriz[i][inicol]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } inicol=(inicol+1); } if(logico=1){ printf("A matriz e inca"); } else{ printf("A matriz não e inca"); } return 0; } Até essa parte abaixo o algoritmo está executando ok. #include <stdio.h> #include <stdlib.h> int main(){ int logico,i,j,n,inicol,fimcol,inilin,fimlin,degrau; int matriz[20][20]; do{ printf("Escreva a dimensao da matriz:"); scanf("%d",&n); if((n<1)||(n>20)){ printf("A dimensao da matriz precisa estar entre 1 e 20\n"); } }while((n<1) || (n>20)); printf("A matriz informada e do tipo %dX%d\n",n,n); printf("Digite os numeros da matriz abaixo:\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("Entre com o valor de matriz["); printf("%d,",i); printf("%d]:",j); scanf("%d",&matriz[i][j]); } } for(i=1;i<=n;i++){ printf("\n"); for(j=1;j<=n;j++){ printf("%2d",matriz[i][j]); printf(" "); } printf("\n"); }