TaiSuzart 0 Denunciar post Postado Outubro 18, 2014 Altere o programaabaixo para desenhar um triângulo na matriz formada por elementos 0 e 1 (conforme o desenho ao lado docódigo). 000010000000111000001111100011111110111111111 void piramide() { int i,j,z; int tamanho = 9;int mat[(tamanho/2)+1][tamanho];for(i=0; i < (tamanho/2) + 1; i++) {for(j=0; j < tamanho; j++) {mat[j] = 0;}}for(i=0; i < (tamanho/2) + 1; i++) {for(j=0; j < tamanho; j++) {printf(“%d”, mat[j]);}printf(“\n”);}} Resolução do exericio: #include <stdio.h>#include <stdlib.h>int main(){ int i,j; int tamanho=9; int mat[(tamanho/2)+1][tamanho]; for(i=0;i<(tamanho/2)+1;i++){ for(j=0;j<tamanho;j++){ mat[j]=0; if(i==0){ if(j==(tamanho/2)){ mat[j]=1; } }else{ if ((mat[i-1][j-1]==1) || (mat[i-1][j]==1) || (mat[i-1][j+1]==1)) { mat[j]=1; } } } } for(i=0;i<(tamanho/2)+1;i++){ for(j=0;j<tamanho;j++){ printf("%d",mat[j]); } printf("\n"); } system("PAUSE"); return 1;} A primeira parte é desenvolver o programa eu já desenvolvi. Mas a segunda parte o professor pede fazer o programa utizando ponteiros. E eu não estou conseguindo fazer. Alguem pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
LazaroBinda 3 Denunciar post Postado Outubro 25, 2014 Veja se isso te serve: int main(){ int i; const int tamanho = 9; int *mat = new int[(tamanho + 1) / 2 * tamanho]; for (i = 0; i<((tamanho + 1) / 2 * tamanho); i++){ *(mat + i) = 0; if (i < tamanho){ if (i == (tamanho / 2)){ *(mat + i) = 1; } } else{ if ((*(mat + i - tamanho - 1) == 1) || (*(mat + i - tamanho) == 1) || (*(mat + i - tamanho + 1)) == 1) { *(mat + i) = 1; } } } for (i = 0; i < ((tamanho + 1) / 2 * tamanho); i++){ printf("%d", *(mat + i)); if ((i + 1) % tamanho == 0) printf("\n"); } system("PAUSE"); return 1; } Tentei ao máximo manter parecido com o programa que você já tinha feito. Compartilhar este post Link para o post Compartilhar em outros sites