Maria Luiza Demarco Postado Janeiro 21, 2018 Denunciar Share Postado Janeiro 21, 2018 Opa sou novo aqui, estou com dúvida em um exercício no de linguagem C, pede-se o seguinte: Matriz 6x6 Preencher a diagonal principal com os primeiros números da sequencia de fibonacci; Preencher a diagonal secundaria com os primeiros números primos; Preencher o triangulo superior com os primeiros números pares( não deve sob-escrever a diagonal); Preencher o triangulo inferir com primeiros numero impares (não deve sob-escrever a diagonal) A estrutura dever ser da seguinte maneira: #include <stdio.h> int main() { int cont_par=2; int matriz[6][6]; int cont_impar=1; int cont_primo=2; int cont_fibo=0; int i, j; //preenchendo com o valor 0; for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { matriz[i][j]=0; } } for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { if(i==j){ matriz[i][j]=cont_fibo; //preenchendo a diagonal principal; } } if(i+j==7){ //preenchendo apenas a diagonal secundaria; matriz[i][j]=cont_primo; } if(i<j){ //preenchendo o triagulo superior if(matriz[i][j]==0){ matriz[i][j]=cont_par; cont_par = cont_par+2;} } if(i>j){ //preenchendo o triagulo inferior/ if(matriz[i][j]==0){ matriz[i][j]=cont_impar; cont_impar+2; } } } } for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { printf("%d ", matriz[i][j]); } printf("\n"); } return 0; } Não estou conseguindo gerar essa matriz, por favor alguém me ajuda? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nefisto Postado Janeiro 23, 2018 Denunciar Share Postado Janeiro 23, 2018 Ola @Maria Luiza Demarco, da uma olhada no código abaixo, espero ter ajudado, qualquer coisa da um grito, abraços #include <stdio.h> #define SIZE 6 int fibo (int n) { if (!n) return 0; if (n <= 2) return 1; return fibo (n-1) + fibo (n-2); } int ehPrimo (int n) { int tmp = n; while (--n > 1) if ( !(tmp%n) ) break; if (n == 1) return 1; return 0; } void mostraMatriz (int m[SIZE][SIZE]) { int i, j; for (i = 0; i < SIZE; i++) { for (j = 0; j < SIZE; j++) printf("%02d ", m[i][j]); printf("\n"); } } int main() { int matriz[SIZE][SIZE] = {0}; int i, j, k; int tmpPrimo = 1; //Diagonal principal for (i = 0; i < SIZE; i++) matriz[i][i] = fibo (i+1); //Diagonal secundaria for (i = SIZE-1, j = 0; i >= 0; i--) { //enquanto o primo temporario não for um numero primo, continue procurando pelo proximo primo while ( !(ehPrimo (++tmpPrimo)) ) ; matriz[j++][i] = tmpPrimo; } //Pares k = 2; for (i = 0; i < SIZE; i++) for (j = i; j < SIZE; j++) if (!matriz[i][j]) { matriz[i][j] = k; k += 2; } //IMPARES k = 1; for (i = 0; i < SIZE; i++) for (j = 0; j <= i; j++) if (!matriz[i][j]) { matriz[i][j] = k; k += 2; } mostraMatriz (matriz); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Maria Luiza Demarco
Opa sou novo aqui, estou com dúvida em um exercício no de linguagem C, pede-se o seguinte:
Matriz 6x6
Preencher a diagonal principal com os primeiros números da sequencia de fibonacci;
Preencher a diagonal secundaria com os primeiros números primos;
Preencher o triangulo superior com os primeiros números pares( não deve sob-escrever a diagonal);
Preencher o triangulo inferir com primeiros numero impares (não deve sob-escrever a diagonal)
A estrutura dever ser da seguinte maneira:
Não estou conseguindo gerar essa matriz, por favor alguém me ajuda?
Link para o comentário
Compartilhar em outros sites
1 resposta 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.