Ir ao conteúdo

Posts recomendados

Postado

Preciso de ajuda para comentar cada linha desse código. Tentar me explicar o que cada parte faz, suas funções, etc.

#include <stdio.h>

#define N 5

void preencher_matriz(int mat[][N])
{
    int i, j;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
            printf("Informe o valor de matriz[%d][%d]: ", i, j);
            scanf("%d", &mat[i][j]);
        }
    }
}

int somar_linha(int mat[][N], int linha)
{
    if (linha >= 0 && linha < N) // verifica se a linha é válida
    {
        int coluna, total = 0;

        for (coluna = 0; coluna < N; coluna++)
        {
            total += mat[linha][coluna];
        }

        return total;
    }
    else // caso contrário retorna soma 0
    {
        return 0;
    }
}

int somar_coluna(int mat[][N], int coluna)
{
    if (coluna >= 0 && coluna < N) // verifica se a coluna é válida
    {
        int linha, total = 0;

        for (linha = 0; linha < N; linha++)
        {
            total += mat[linha][coluna];
        }

        return total;
    }
    else // caso contrário retorna soma 0
    {
        return 0;
    }
}

int indice_menor_valor(int vet[])
{
    int i, menor_valor = vet[0], menor_indice = 0;

    for (i = 1; i < N; i++)
    {
        if (vet[i] < menor_valor)
        {
            menor_valor = vet[i];
            menor_indice = i;
        }
    }

    return menor_indice;
}

int indice_maior_valor(int vet[])
{
    int i, maior_valor = vet[0], maior_indice = 0;

    for (i = 1; i < N; i++)
    {
        if (vet[i] > maior_valor)
        {
            maior_valor = vet[i];
            maior_indice = i;
        }
    }

    return maior_indice;
}

int main()
{
    int mat[N][N], soma_linhas[N], soma_colunas[N];
    int i;

    preencher_matriz(mat);

    for (i = 0; i < N; i++)
    {
        soma_linhas[i] = somar_linha(mat, i);
        soma_colunas[i] = somar_coluna(mat, i);
    }

    printf("Linha com menor soma: %d\n", indice_menor_valor(soma_linhas));
    printf("Coluna com maior soma: %d\n", indice_maior_valor(soma_colunas));

    return 0;
}

 

  • Triste 1
Postado

Consegui fazer isso: Mas nao sei se ta certo!

 

 

 

#include <stdio.h>

#define N 5

void preencher_matriz(int mat[][N])/Função que preenche a matriz/
{
    int i, j;/Declaração das variáveis i e j/
    for (i = 0; i < N; i++)/*Laço encaixado: i começa em 0, enquanto ele for menor que N */
    {
        for (j = 0; j < N; j++)/j começa em 0, enquanto for menor que N/
        {
            printf("Informe o valor de matriz[%d][%d]: ", i, j);/Pede ao usuário que digite o valor da matriz,na posição ij./
            scanf("%d", &mat[i][j]);/Captura do teclado a resposta do usuário/
        }
    }
}

int somar_linha(int mat[][N], int linha)/Declaração da função que soma as linhas da matriz/
{
    if (linha >= 0 && linha < N) // verifica se a linha é válida, se a linha for maior ou igual a 0 e menor que N
    {
        int coluna, total = 0;/Declaração das variáveis coluna e total e inicialização delas com 0/

        for (coluna = 0; coluna < N; coluna++)/Laço: coluna começa em 0, enquanto ela for menor que N o programa percorre a matriz/
        {
            total += mat[linha][coluna];/Total recebe a soma dos valores das linas da matriz/
        }

        return total;/Retorna-se total/
    }
    else // caso contrário retorna 0
    {
        return 0;
    }
}

int somar_coluna(int mat[][N], int coluna)/Declaração da função que soma as colunas da matriz/
{
    if (coluna >= 0 && coluna < N) // verifica se a coluna é válida, se a coluna for maior ou igual a 0 e menor que N
    {
        int linha, total = 0;/Declaração das variáveis linha e total e inicialização delas com 0/

        for (linha = 0; linha < N; linha++)/Laço: linha começa em 0, enquanto ela for menor que N o programa percorre a matriz/
        {
            total += mat[linha][coluna];/Total recebe a soma dos valores das colunas da matriz/
        }

        return total;/Retorna-se o valor da variável total/
    }
    else // caso contrário retorna 0
    {
        return 0;
    }
}

int indice_menor_valor(int vet[])/Função que procura o menor valor/
{
    int i, menor_valor = vet[0], menor_indice = 0;/*declaração de variáveis e inicialização delas */

    for (i = 1; i < N; i++)/Laço: i começa em 1 e enquanto for menor que N o programa roda/
    {
        if (vet[i] < menor_valor)/Se o vetor na posição i for menor que  a variável menor_valor/
        {
            menor_valor = vet[i];/A variável menor_valor recebe o vetor na posção i,ou seja ela é atualizada/
            menor_indice = i;/Atualiza o menor índice até então/
        }
    }

    return menor_indice;/Retorna-se o menor índice/
}

int indice_maior_valor(int vet[])/Função que busca o maior valor/
{
    int i, maior_valor = vet[0], maior_indice = 0;/*Declaração de variáveis e inicialização delas */

    for (i = 1; i < N; i++)/Laço:i começa em 1 e enquanto for menor que N o programa roda/
    {
        if (vet[i] > maior_valor)/Se o vetor na posição i for maior que  a variável maior_valor/
        {
            maior_valor = vet[i];/A variável maior_valor recebe o vetor na posção i,ou seja ela é atualizada/
            maior_indice = i;/Atualiza o maior índice até então/
        }
    }

    return maior_indice;/Retorna-se o maior índice/
}

int main()/Programa Principal/
{
    int mat[N][N], soma_linhas[N], soma_colunas[N];/Declaração de variáveis/
    int i;/Declaração da variável i/

    preencher_matriz(mat);/Chama a função que preenche a matriz/

    for (i = 0; i < N; i++)/Laço: i começa em 0, enquanto i for menor que N/
    {
        soma_linhas[i] = somar_linha(mat, i);/A variável soma_linhas recebe o que a função somar_linha retornar, considerando os parâmetros passados/
        soma_colunas[i] = somar_coluna(mat, i);/A variável soma_colunas recebe o que a função somar_coluna retornar, considerando os parâmetros passados/
    }

    printf("Linha com menor soma: %d\n", indice_menor_valor(soma_linhas));/Exibe na tela a linha com menor soma/
    printf("Coluna com maior soma: %d\n", indice_maior_valor(soma_colunas));/Exibe na tela a coluna com maior soma/

    return 0;/Retorna 0/
}

#include <stdio.h>

#define N 5

void preencher_matriz(int mat[][N])/Função que preenche a matriz/
{
    int i, j;/Declaração das variáveis i e j/
    for (i = 0; i < N; i++)/*Laço encaixado: i começa em 0, enquanto ele for menor que N */
    {
        for (j = 0; j < N; j++)/j começa em 0, enquanto for menor que N/
        {
            printf("Informe o valor de matriz[%d][%d]: ", i, j);/Pede ao usuário que digite o valor da matriz,na posição ij./
            scanf("%d", &mat[i][j]);/Captura do teclado a resposta do usuário/
        }
    }
}

int somar_linha(int mat[][N], int linha)/Declaração da função que soma as linhas da matriz/
{
    if (linha >= 0 && linha < N) // verifica se a linha é válida, se a linha for maior ou igual a 0 e menor que N
    {
        int coluna, total = 0;/Declaração das variáveis coluna e total e inicialização delas com 0/

        for (coluna = 0; coluna < N; coluna++)/Laço: coluna começa em 0, enquanto ela for menor que N o programa percorre a matriz/
        {
            total += mat[linha][coluna];/Total recebe a soma dos valores das linas da matriz/
        }

        return total;/Retorna-se total/
    }
    else // caso contrário retorna 0
    {
        return 0;
    }
}

int somar_coluna(int mat[][N], int coluna)/Declaração da função que soma as colunas da matriz/
{
    if (coluna >= 0 && coluna < N) // verifica se a coluna é válida, se a coluna for maior ou igual a 0 e menor que N
    {
        int linha, total = 0;/Declaração das variáveis linha e total e inicialização delas com 0/

        for (linha = 0; linha < N; linha++)/Laço: linha começa em 0, enquanto ela for menor que N o programa percorre a matriz/
        {
            total += mat[linha][coluna];/Total recebe a soma dos valores das colunas da matriz/
        }

        return total;/Retorna-se o valor da variável total/
    }
    else // caso contrário retorna 0
    {
        return 0;
    }
}

int indice_menor_valor(int vet[])/Função que procura o menor valor/
{
    int i, menor_valor = vet[0], menor_indice = 0;/*declaração de variáveis e inicialização delas */

    for (i = 1; i < N; i++)/Laço: i começa em 1 e enquanto for menor que N o programa roda/
    {
        if (vet[i] < menor_valor)/Se o vetor na posição i for menor que  a variável menor_valor/
        {
            menor_valor = vet[i];/A variável menor_valor recebe o vetor na posção i,ou seja ela é atualizada/
            menor_indice = i;/Atualiza o menor índice até então/
        }
    }

    return menor_indice;/Retorna-se o menor índice/
}

int indice_maior_valor(int vet[])/Função que busca o maior valor/
{
    int i, maior_valor = vet[0], maior_indice = 0;/*Declaração de variáveis e inicialização delas */

    for (i = 1; i < N; i++)/Laço:i começa em 1 e enquanto for menor que N o programa roda/
    {
        if (vet[i] > maior_valor)/Se o vetor na posição i for maior que  a variável maior_valor/
        {
            maior_valor = vet[i];/A variável maior_valor recebe o vetor na posção i,ou seja ela é atualizada/
            maior_indice = i;/Atualiza o maior índice até então/
        }
    }

    return maior_indice;/Retorna-se o maior índice/
}

int main()/Programa Principal/
{
    int mat[N][N], soma_linhas[N], soma_colunas[N];/Declaração de variáveis/
    int i;/Declaração da variável i/

    preencher_matriz(mat);/Chama a função que preenche a matriz/

    for (i = 0; i < N; i++)/Laço: i começa em 0, enquanto i for menor que N/
    {
        soma_linhas[i] = somar_linha(mat, i);/A variável soma_linhas recebe o que a função somar_linha retornar, considerando os parâmetros passados/
        soma_colunas[i] = somar_coluna(mat, i);/A variável soma_colunas recebe o que a função somar_coluna retornar, considerando os parâmetros passados/
    }

    printf("Linha com menor soma: %d\n", indice_menor_valor(soma_linhas));/Exibe na tela a linha com menor soma/
    printf("Coluna com maior soma: %d\n", indice_maior_valor(soma_colunas));/Exibe na tela a coluna com maior soma/

    return 0;/Retorna 0/
}

 

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!