Ir ao conteúdo
  • Cadastre-se

Sizonel

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

posts postados por Sizonel

  1. saudações,

    estou ficando roxa por não conseguir resolver meu codigo.

     

    eu estou fazendo um programa que vai ler o tamanho que ele quer q a matriz terá, e depois vai ler todos os numeros das linhas e colunas e vai guardar nessa matriz.

    depois disso preciso somar cada linha, cada coluna, e as diagonais, se todos esses forem iguais, resulta em um quadrado magico.

    por isso criei um vetor para guardar o valor de cada linha, e um vetor pra guardar o valor de cada coluna.. só que eles estão valendo uns valores aleatórios (veja fotografia anexada), e eu nao to conseguindo fazer esses dois vetores valer zero

    (to usando sempre para teste o tamanho valendo 3, e os numeros da matriz de 1 a 9)

     

    ps: nao sei se o jeito de se somar tá certo.. iria conferir depois, mas como o vetor apresenta um valor zoado eu nao consigo saber se tá certo a conta.. entao o foco não é a conta, e sim zerar o vetor :)

    ps2: comentei o codigo pra explicar como eu tava pensando, caso tiver algo errado add um /* */ comentando por favorr

     

    #include<stdio.h>
    
    int main()
    {
    
        int tamanho=0, colunas=0, linhas=0;
        
        printf("\n\t\t---VAMOS CONFERIR SE SUA TABELA É UM QUADRADO MAGICO!---");
        printf("\n\n\t\t\t[pressione ENTER para continuar]");
        getchar();
    
        printf("\n\n\nQuantas linhas/colunas quer que sua tabela tenha: ");
        scanf("%d", &tamanho);
        getchar();
    
        int quadrado[tamanho][tamanho]; //declaraçao da matriz com o tamanho q o usuario quer
    
        printf("\n\nAgora é necessário que dite os valores!");
    
        //laço para receber os valores e guardar na matriz
        for (linhas = 0; linhas < tamanho; linhas++)
        {        
            for (colunas = 0; colunas < tamanho; colunas++)
            {
                printf("\n\n\t-> Valor da linha %d e coluna %d: ", linhas+1, colunas+1);
                scanf("%d", &quadrado[linhas][colunas]);
            }
            
        }
    
        int posicao = tamanho; //nova variavel pra colocar no indice do vetor, e será o mesmo tamanho que o usuario deu
        int soma_linhas[posicao], soma_colunas[posicao]; //declaraçao dos dois vetores para linha e coluna
        int soma_diagprincipal =0, soma_diagsecundaria=0; //duas variaveis para guardar o valor das diagonais
    
    
        posicao=0; //zerando valor do indice do vetor, antes valia tamanho
        //laço para percorrer matriz e somar todos as colunas de cada linha
        for (linhas = 0; linhas < tamanho; linhas++)
        {        
            for (colunas = 0; colunas < tamanho; colunas++)
            {
                soma_linhas[posicao] = soma_linhas[posicao] + quadrado[linhas][colunas];
            }
            //depois de percorrer todas as colunas, posicao ++ para ir pra segunda posiçao do vetor
            posicao++;
        }
    
        posicao=0;//zerando valor do indice do vetor, antes valia tamanho
        //laço para percorrer matriz e somar todos as linhas de cada coluna
        for (colunas = 0; colunas < tamanho; colunas++)
        {        
            for (linhas = 0; linhas < tamanho; linhas++)
            {
                soma_colunas[posicao] = soma_colunas[posicao] + quadrado[linhas][colunas];
            }
            //depois de percorrer todas as colunas, posicao ++ para ir pra segunda posiçao do vetor
            posicao++;
        }
        
      //aqui ta dando o resultado certo, nao é necessario ver
        for (linhas = 0; linhas < tamanho; linhas++)
        {        
            for (colunas = 0; colunas < tamanho; colunas++)
            {
                if (linhas == colunas)
                {
                    soma_diagprincipal = soma_diagprincipal + quadrado[linhas][colunas];
                }
            }
        }
    
      	//aqui ta dando o resultado certo, nao é necessario ver
        for (colunas = 0; colunas < tamanho; colunas++)
        {
            for (linhas = 0; linhas < tamanho; linhas++)
            {
                if (linhas +1 + colunas+1 == tamanho+1)
                {
                    soma_diagsecundaria = soma_diagsecundaria + quadrado[linhas][colunas];
                }
                
            }
        }
    
    	//laço para printar temporariamente o valor dos vetores p conferir 
        for (posicao = 0; posicao < tamanho; posicao++)
        {
            printf("\nLINHAS %d", soma_linhas[posicao]);
            printf("\nCOLUNAS %d", soma_colunas[posicao]);
        }
    
      		//aqui ta dando o resultado certo, nao é necessario ver
            printf("\n\n");
            printf("\nPRIMA %d", soma_diagprincipal);
            printf("\nSECUN %d", soma_diagsecundaria);
        
        printf("\n\n");
    
        return 0;
    }

     

    codigo.jpeg

    adicionado 11 minutos depois

    update: consegui resolver criando uma variavel nova pra guardar e somar os valores da matriz

    ex: soma = soma +matriz

    soma = 0

    indice vetor ++

     

    ...

    masssss eu queria saber como resolver desse jeito aí do vetor = vetor + matriz

     

    =/

    • Curtir 1
  2. ola, preciso fazer um exercicio em c pra faculdade, mas nao sei como resolver o esquema de nao repetir os numeros.. 

    aqui ta o exercicio: "Faca um programa para gerar automaticamente numeros de 0 a 99 de uma cartela de bingo. Sabendo
    que cada cartela devera conter 5 linhas de 5 numeros, gere estes dados de modo a nao ter numeros
    repetidos dentro das cartela. O programa deve exibir na tela a cartela gerada

     

    e aqui ta meu codigo:
     

    #include<stdio.h>
    
    #include<stdlib.h>
    
    #include<time.h>
    
    
    
    int main()
    
    {
    
        int bingo [5][5], a, b;
    
        int aleatorio;
    
    
    
        printf("\n\t---> VAMOS SORTEAR UMA CARTELA DE BINGO!! <---");
    
        printf("\n\n\n");
    
    
    
        for (= 0; a < 5; a++)
    
        {
    
            for (= 0; b < 5; b++)
    
            {
    
                srand( time(NULL));
    
                aleatorio = rand() % 99;
    
                
    
                bingo[a][b] = aleatorio;
    
            }
    
            
    
        }
    
       
    
        for (= 0; a < 5; a++)
    
        {
    
            for (= 0; b < 5; b++)
    
            {
    
                printf("\t| %d |", bingo[a][b]);
    
            }
    
    
    
        printf("\n");    
    
        }
    
    
    
        
    
    return 0;
    
    }

     

    agardeço desde ja :)

    • Curtir 2

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!