Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Maria Luiza Demarco

C Matriz 6x6 FOR linguagem C

Recommended Posts

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?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maria Luiza Demarco      você quer imprimir a matriz conforme foi pedido ou  é preciso usar vários for ?  

  se for só imprimir do jeito que foi pedido então só precisa de um for e seu código ficaria assim :

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(int x,int y){
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int main(){
    int i,j,l=5,c;
    int matriz[6][6]={
        {0 , 2, 4, 6, 8, 2},
        {-1, 1,10,12, 3,-1},
        {-1,-1, 1, 5,-1,-1},
        {-1,-1, 7, 2,-1,-1},
        {-1,11, 1, 3, 3,-1},
        {13, 5, 7, 9,11, 5}
    };
    for(i=0;i<6;i++){
        c=5;
        for(j=0;j<6;j++){
            gotoxy(c,l);
            if(matriz[i][j]!=-1){
                if(matriz[i][j]<10)printf(" %d",matriz[i][j]);
                else printf("%d",matriz[i][j]);
            }
            else
                printf(" -");
            c+=3;
        }
        l++;
    }
    getch();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, devair1010 disse:

 você quer imprimir a matriz conforme foi pedido ou  é preciso usar vários for ?

Certamente será preciso preencher a matriz automaticamente. Se não seria muito fácil isso não acha?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maria Luiza Demarco Organizei e corrigi a estrutura do seu código:

#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;
            }
            else if (i + j == 5) { //preenchendo apenas a diagonal secundaria;
                matriz[i][j] = cont_primo;

            }
            else if (i < j) { //preenchendo o triagulo superior
                if (matriz[i][j] == 0) {
                    matriz[i][j] = cont_par;
                    cont_par = cont_par + 2;
                }

            }
            else if (i > j) { //preenchendo o triagulo inferior/
                if (matriz[i][j] == 0) {
                    matriz[i][j] = cont_impar;
                    cont_impar = cont_impar + 2;

                }
            }
        }
    }

    for (i = 0; i < 6; ++i) {
        for (j = 0; j < 6; ++j) {
            printf("%2d ", matriz[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Basicamente tinha código fora do lugar, então coloquei os ifs dentro do segundo for, e excluí algumas chaves {} que estavam em excesso. Também usei "else if"s pra evitar que um sobrescreva outro. E no caso da diagonal secundária seriam as posições em que i + j == 5, não == 7, pois as posições de i e j vão de 0 a 5, ao invés de 1 a 6.

 

Ainda falta implementar os cálculos dos números primos e Fibonacci.

  • Curtir 1

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






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

×