Ir ao conteúdo
  • Cadastre-se

C zerar o valor de dentro do vetor pra 0


Sizonel

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

for (linhas = 0; linhas < tamanho; linhas++)
    {        
        soma_linhas[posicao] = 0;//ACRESCENTAR ESSA LINHA
        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++)
    {        
		soma_colunas[posicao] = 0;//ACRESCENTAR ESSA LINHA                   
        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++;
    }
    
  

Veja se a solução acima resolve.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

28 minutos atrás, Sizonel disse:

@Flávio Pedroza ahhh, realmente.. resolve sim!!

mas em um exercicio anterior eu tive que dar uns valores para a matriz, nisso utilizei = {{1, 2, 3}{4,5....}

nao é possivel fazer isso de ={..} com o vetor? tentei e nao deu certo =/

Só é possível se o tamanho do vetor for um valor fixo, se for uma variável NÃO.

int vetor1[3] = {0, 0, 0} // ok
int tamanho =3 ;
int vetor2[tamanho] = {0,0,0} //NAO eh possivel

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!