Ir ao conteúdo
  • Cadastre-se

Loris_mini

Membro Pleno
  • Posts

    52
  • Cadastrado em

  • Última visita

posts postados por Loris_mini

  1. Fiz esse código em resposta a essa questão:

    A gerente do cabeleireiro Sempre Bela tem uma tabela em que registra os “pés”, as “mãos” e o serviço de podologia das cinco manicures. Sabendo-se que cada uma ganha 50% do que faturou ao mês, criar um algoritmo que possa calcular e imprimir quanto cada um vai receber, uma vez que não têm carteiras assinadas; os valores, respectivamente, são R$ 10,00; R$ 15,00 e R$ 30,00.

    #include <stdio.h>
    #include <stdlib.h>
    
     void main()
     {
     int manicure=0, servico;
     int servicos[5][3], i, j, soma;
     //zerando a tabela de servicos
     for (i=0; i<5; i++) {
     for (j=0; j<3; j++)
     servicos[i][j]=0;
     //fazendo a leitura dos servicos
     do {
     printf("Informe a manicure <1-5>:\n");
     scanf("%d", &manicure);
     printf("Informe o servico <1-pe 2-mao 3-podologia>:\n");
     scanf("%d", &servico);
     if (manicure >= 1 && manicure <=5) {
     if (servico >= 1 && servico <= 3)
     servicos[manicure-1][servico-1]++;
     else
     printf("Servico invalido!\n");
     }
     else
     printf("Manicure invalida!\n");
     } while (manicure != 0);
     //calculando e imprimindo o faturamento
     printf("\nFaturamento das manicures:\n");
     for (i=0; i<5; i++) {
     soma = servicos[i][0] * 10;
     soma += servicos[i][1] * 15;
     soma += servicos[i][2] * 30;
     printf("\nManicure %d: %d\n", i+1, soma);
     }
     }

    Mas gostaria de saber como eu faria essa mesma questão utilizando PONTEIROS e ALOCAÇÃO DINÂMICA DE MEMÓRIA.

  2. Alguem poderia me ajudar a ver se tem algum erro nesse código, e o que ele imprimi?

    #include <stdio.h>
    int main()
    {
    int a, b, c;
    int *ptr1, *ptr2;
    a = 12;
    ptr1 = &c;
    ptr2 = b;
    c = 5;
    *ptr2 = (*ptr1 + c) % a;
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
    return 0;
    }

     

    1 minuto atrás, Loris_mini disse:

    ptr2 = b;

    o erro eu achei que seria aqui.

    Esta faltando o &

    ficaria 

    ptr2 = &b;

    No caso esse código esta imprimindo os valores de a, b e c ?

  3. Não consigo entender o que será impresso pelo programa abaixo:

    
    #include <stdio.h>
    int main()
    { 
     int a, b, c;
     int *ptr1, *ptr2;
     
     a = 9;
     ptr1 = &a;
     ptr2 = &b;
     c = 7;
     *ptr2 = *ptr1 + c;
     
     printf("a = %d\n", a);
     printf("b = %d\n", b);
     printf("c = %d\n", c);
     
     ptr1 = ptr2;
     *ptr1 = 2;
     ptr2 = &c;
     b = a + *ptr1;
     
     printf("a = %d\n", a);
     printf("b = %d\n", b);
     printf("c = %d\n", c);
     
     return 0;

    Coloquei ele pra rodar e o programa rodou isso:

    image.thumb.png.d1f2a5a4d2b3d7c71a9829915720f310.png

    Com isso eu não entendi direito o que ele roda afinal. Qual a explicação pra esse código?

    • Triste 1
  4. Estou com dúvidas nesse código. 

    Ele imprimi uma sequencia de numeros e depois inverte eles?

    #include <stdio.h>
    int main()
    {
     int i;
     int* ptr;
     int lista[] = {1, 3, 5, 8, 10, 16};
    
     ptr = lista;
    
     for(i = 0; i < 6; ++i)
     {
     printf("%d\n", *ptr);
     ptr++;
     }
    
     printf("\n\n");
     ptr--;
    
     for(i = 0; i < 6; ++i)
     {
     printf("%d\n", *ptr);
     ptr--;
     }
     return 0;
    }

     

  5. Estou com dúvida em uma linha de um código que não consigo decifrar o que ele faz. Alguem pode me ajudar?

     

    void exibir_invertido(char nome[])//Função que inverte a string/
    {
        if (nome[0] != '\0')//Se a string na posição 0 for diferente de 0/
        {
            exibir_invertido(&nome[1]);
            printf("%c", nome[0]); //Exibe na tela a string na posição 0/
        }
    }
    
    int main() //Programa Princial/
    {
        char nome[30]; //Declaração de uma variável do tipo caracter de tamanho 30/
    
        printf("Digite o nome: "); //Pede ao usuário que digite o nome/
        scanf("%s", nome); //captura do teclado a resposta do usuário e armazena na variável nome/
        exibir_invertido(nome); //Chama a função que exibe a string invertida/
    
        printf("\n"); //Pula uma linha/
        return 0; //Retorna 0/
    }

     

    agora, Loris_mini disse:

    Estou com dúvida em uma linha de um código que não consigo decifrar o que ele faz. Alguem pode me ajudar?

     

    
    void exibir_invertido(char nome[])//Função que inverte a string/
    {
        if (nome[0] != '\0')//Se a string na posição 0 for diferente de 0/
        {
            exibir_invertido(&nome[1]);
            printf("%c", nome[0]); //Exibe na tela a string na posição 0/
        }
    }
    
    int main() //Programa Princial/
    {
        char nome[30]; //Declaração de uma variável do tipo caracter de tamanho 30/
    
        printf("Digite o nome: "); //Pede ao usuário que digite o nome/
        scanf("%s", nome); //captura do teclado a resposta do usuário e armazena na variável nome/
        exibir_invertido(nome); //Chama a função que exibe a string invertida/
    
        printf("\n"); //Pula uma linha/
        return 0; //Retorna 0/
    }

     

    estou com dificuldade nessa linha

  6. @devair1010 Consegui fazer isso. Poderia me ajudar para ver se é isso mesmo? Ou se tem algo divergente?

    #include <stdio.h>
    
    int calcular_nota_final(int notas[][3], int quant_alunos, int indice_linha)/Funçao que calcula a nota final, recebe como parâmetros a quantidade de alunos e a variável índice_linha/
    {
        int total = 0;/Declaração da variável total e inicialização dela com 0/
        if (indice_linha >= 0 && indice_linha < quant_alunos)/Condição: Se a variável indice_linha for maior ou igual a 0 r menor do que a quantidade de alunos/
        {
            int i;/Declaração da variável i, do tipo inteiro/
            for (i = 0; i < 3; i++)/Laço: i começa em 0 e enquanto for menor que 3/
            {
                total += notas[indice_linha][i];/A variável total recebe a soma das notas/
            }
        }
        return total;/Retorna-se total/
    }
    
    int indice_menor_nota(int notas[][3], int quant_alunos, int indice_coluna)/Função que procura a menor nota/
    {
        int indice = 0, menor_nota, i;/Declaração de variáveis/
        if (indice_coluna >= 0 && indice_coluna < 3)/Condição: se a variável indice_coluna for maior ou igual a 0 e menor do que 3/
        {
            menor_nota = notas[0][indice_coluna];/A variável menor_nota recebe a menor nota/
            for (i = 1; i < quant_alunos; i++)/Laço: i começa em 1, enquanto for menor do que a quantidade de alunos/
            {
                if (notas[i][indice_coluna] < menor_nota)/Condição: se a nota na linha i for menor do que a menor nota até então/
                {
                    menor_nota = notas[i][indice_coluna];/Atualiza a menor nota/
                    indice = i;/Atualiza o índice/
                }
            }
        }
        return indice;/Retorna-se o índice/
    }
    
    void imprimir_alunos_com_media(char nomes[][30], int notas[][3], int quant_alunos, int media)/Função que imprime o nome dos alunos que obtiveram média/
    {
        int i, nota_final;/Declaração de variáveis/
    
        printf("\nAlunos que obtiveram media acima de %d\n", media);/Exibe na tela os alunos que obtiveram nota acima da média/
        for (i = 0; i < quant_alunos; i++)/Laço: i começa em 0 e enquanto for menor do que a quantidade de alunos/
        {
            nota_final = calcular_nota_final(notas, quant_alunos, i);/nota final recebe o retorno da função que calcula as notas finais/
            if (nota_final > media)/Condição: se a nota final for maior do que a média/
            {
                printf("%s - %d pontos\n", nomes[i], nota_final);/Exibe na tela o nome do aluno e a nota/
            }
        }
        printf("\n");/Pula uma linha/
    }
    
    int indice_maior_nota(int notas[][3], int quant_alunos)/Verifica o índice da maior nota/
    {
        int i, tmp;/Declaração de variáveis/
        int maior_nota = calcular_nota_final(notas, quant_alunos, 0);/*A variável maior_nota recebe o retorno da função calcular_nota_final */
        int indice_maior_nota = 0;/*Declaração da variável indice_maior_nota e inicialização dela com 0 */
    
        for (i = 1; i < quant_alunos; i++)/Laço: i começa em 1 e enquanto for menor que a quantidade de alunos/
        {
            tmp = calcular_nota_final(notas, quant_alunos, i);/*A variável tmp recebe o retorno da função calcular_nota_final, considerando os parâmetros passados */
            if (tmp > maior_nota)/Condição: se tmp for maior do que a maior nota/
            {
                maior_nota = tmp;/A maior nota é atualizada/
                indice_maior_nota = i;/Atualiza-se o índice da maior nota/
            }
        }
    
        return indice_maior_nota;/Retorna-se o índice da maior nota/
    }
    
    int main()/Programa Principal/
    {
        int n;/Declaração da variável n/
    
        printf("Informe a quantidade de alunos: ");/*Pede ao usuário que informe a quantidade de alunos */
        scanf("%d", &n);/Captura a resposta do aluno do teclado/
    
        int notas[n][3], i, j, k;/Declaração de variáveis/
        char nomes[n][30];/Declaração da matriz de nomes/
    
        for (i = 0; i < n; i++)/Laço: i começa em 0 e enquanto for menor do que n/
        {
            printf("Informe o nome do aluno[%d]: ", i);/Pede ao usuário que informe o nome do aluno/
            scanf("%s", nomes[i]);/Captura a resposta do usuári e armazena na variável nome, na posição i/
    
            for (j = 0; j < 3; j++)/Laço: j começa em 0 e enquanto for menor do que 3/
            {
                printf("Informe a nota da prova %d do aluno[%d]: ", j + 1, i);/Pede ao usuário que informe a nota da prova do aluno/
                scanf("%d", &notas[i][j]);/Captura a resposta do usuário e a armazena na matriz de notas/
            }
        }
    
        imprimir_alunos_com_media(nomes, notas, n, 80);/Chama a função que imprime o nome dos alunos com média acima de 80/
    
        printf("Menor nota em cada prova\n");/Imprime na tela:Menor nota em cada prova/
        for (i = 0; i < 3; i++)/Laço: i começa em 0 e enquanto for menor do que 3/
        {
            k = indice_menor_nota(notas, n, i);/A variável k recebe o retorno da função indice_menor_nota, de acordo com os parâmetros passados/
            printf("Menor nota prova %d: %s - %d pontos\n", i + 1, nomes[k], notas[k][i]);/Exibe na tela A menor nota em determinada prova e o nome do aluno/
        }
        printf("\n");/Pula uma linha/
    
        k = indice_maior_nota(notas, n);/A variável k recebe o retorno da função indice_maior_nota/
        printf("Maior nota do curso: %s - %d pontos\n", nomes[k], calcular_nota_final(notas, n, k));/Exibe-se na tela a maior nota do curso e o nome do aluno de acordo com a função calcular_nota_final/
    
        return 0;/Retorna-se 0/
    }

     

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

     

  8. @mauro_b

     

    Consegui fazez isso :

     

    void exibir_invertido(char nome[])/Função que inverte a string/
    {
        if (nome[0] != '\0')/Se a string na posição 0 for diferente de 0/
        {
            exibir_invertido(&nome[1]);/**/
            printf("%c", nome[0]); /Exibe na tela a string na posição 0/
        }
    }
    
    int main() /Programa Princial/
    {
        char nome[30]; /Declaração de uma variável do tipo caracter de tamanho 30/
    
        printf("Digite o nome: "); /Pede ao usuário que digite o nome/
        scanf("%s", nome); /captura do teclado a resposta do usuário e armazena na variável nome/
        exibir_invertido(nome); /Chama a função que exibe a string invertida/
    
        printf("\n"); /Pula uma linha/
        return 0; /Retorna 0/
    }

     

    agora, Loris_mini disse:

    exibir_invertido(&nome[1]);/**/

    so nao consegui esssa parte

  9. 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>
    
    int calcular_nota_final(int notas[][3], int quant_alunos, int indice_linha)
    {
        int total = 0;
        if (indice_linha >= 0 && indice_linha < quant_alunos)
        {
            int i;
            for (i = 0; i < 3; i++)
            {
                total += notas[indice_linha][i];
            }
        }
        return total;
    }
    
    int indice_menor_nota(int notas[][3], int quant_alunos, int indice_coluna)
    {
        int indice = 0, menor_nota, i;
        if (indice_coluna >= 0 && indice_coluna < 3)
        {
            menor_nota = notas[0][indice_coluna];
            for (i = 1; i < quant_alunos; i++)
            {
                if (notas[i][indice_coluna] < menor_nota)
                {
                    menor_nota = notas[i][indice_coluna];
                    indice = i;
                }
            }
        }
        return indice;
    }
    
    void imprimir_alunos_com_media(char nomes[][30], int notas[][3], int quant_alunos, int media)
    {
        int i, nota_final;
    
        printf("\nAlunos que obtiveram media acima de %d\n", media);
        for (i = 0; i < quant_alunos; i++)
        {
            nota_final = calcular_nota_final(notas, quant_alunos, i);
            if (nota_final > media)
            {
                printf("%s - %d pontos\n", nomes[i], nota_final);
            }
        }
        printf("\n");
    }
    
    int indice_maior_nota(int notas[][3], int quant_alunos)
    {
        int i, tmp;
        int maior_nota = calcular_nota_final(notas, quant_alunos, 0);
        int indice_maior_nota = 0;
    
        for (i = 1; i < quant_alunos; i++)
        {
            tmp = calcular_nota_final(notas, quant_alunos, i);
            if (tmp > maior_nota)
            {
                maior_nota = tmp;
                indice_maior_nota = i;
            }
        }
    
        return indice_maior_nota;
    }
    
    int main()
    {
        int n;
    
        printf("Informe a quantidade de alunos: ");
        scanf("%d", &n);
    
        int notas[n][3], i, j, k;
        char nomes[n][30];
    
        for (i = 0; i < n; i++)
        {
            printf("Informe o nome do aluno[%d]: ", i);
            scanf("%s", nomes[i]);
    
            for (j = 0; j < 3; j++)
            {
                printf("Informe a nota da prova %d do aluno[%d]: ", j + 1, i);
                scanf("%d", &notas[i][j]);
            }
        }
    
        imprimir_alunos_com_media(nomes, notas, n, 80);
    
        printf("Menor nota em cada prova\n");
        for (i = 0; i < 3; i++)
        {
            k = indice_menor_nota(notas, n, i);
            printf("Menor nota prova %d: %s - %d pontos\n", i + 1, nomes[k], notas[k][i]);
        }
        printf("\n");
    
        k = indice_maior_nota(notas, n);
        printf("Maior nota do curso: %s - %d pontos\n", nomes[k], calcular_nota_final(notas, n, k));
    
        return 0;
    }

     

    • Triste 1
  10. 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
  11. Preciso de ajuda para explicar cada linha desse código. O que cada parte faz especificamente. Alguem pode me ajudar?

    #include <stdio.h>
    
    void exibir_invertido(char nome[])
    {
        if (nome[0] != '\0')
        {
            exibir_invertido(&nome[1]);
            printf("%c", nome[0]);
        }
    }
    
    int main()
    {
        char nome[30];
    
        printf("Digite o nome: ");
        scanf("%s", nome);
        exibir_invertido(nome);
    
        printf("\n");
        return 0;
    }

     

    agora, Laryssa Silva disse:

    if (nome[0] != '\0')

    Estou com dúvida principalmente nessa parte! 

    Esse '\0' significa o que?

    • Triste 1
  12. algoritmo L5P15;
    var
     inteiro : I, J, MA[1..3,1..5], SL[1..3]; 
    início
     { entrada de dados } 
     para I de 1 até 3 faça
     para J de 1 até 5 faça
     leia(MA[I,J]); 
     fim-para
     fim-para
     { cálculo de SL } 
     para I de 1 até 3 faça
     SL[I] <- 0; 
     para J de 1 até 5 faça
     SL[I] <- SL[I] + MA[I,J]; 
     fim-para
     fim-para
     { saída de dados } 
     para I de 1 até 3 faça
     imprima(SL[I]); 
     fim-para
    fim
    program L5P15; 
    var 
     I, J : integer; 
     MA : array [1..3,1..5] of integer; 
     SL : array [1..3] of integer; 
    begin 
     { entrada de dados } 
     for I := 1 to 3 do 
     for J := 1 to 5 do 
     begin 
     write('Digite o elemento (',I,'x',J,') da matriz: '); 
     readLn(MA[I,J]); 
     end; 
     { calculo de SL } 
     for I := 1 to 3 do 
     begin 
     SL[I] := 0; 
     for J := 1 to 5 do 
     SL[I] := SL[I] + MA[I,J]; 
     end; 
     { saida de dados } 
     for I := 1 to 3 do 
     writeLn('Soma da ',I,'a. linha: ',SL[I]); 
    end. 

    Preciso de ajuda para entrerpretar esse algoritmo para linguagem C.

    Eu sei algumas coisas, mas estou com bastante dúvida e outras.

     

    agora, Laryssa Silva disse:

    algoritmo L5P15; var inteiro : I, J, MA[1..3,1..5], SL[1..3];

    Essa parte por exemplo, eu não sei como dar início.

     

    Seria:

    int main(){
    int i, j, ma[5], sl[3];

    O enunciado da questão é a seguinte:

    > Ler valores inteiros para a matriz A3x5. Gerar e imprimir o vetor SL (soma das 3 linhas), onde cada elemento é a soma dos elementos de uma linha da matriz A. Faça o trecho que gera o vetor SL separado (laços de repetição) da entrada e da saída de dados.

    2 minutos atrás, Laryssa Silva disse:

    início { entrada de dados } para I de 1 até 3 faça para J de 1 até 5 faça

    Não sei como ficaria essa parte também em linguagem C

  13. Alguém pode me ajudar nesse código?

    *Faça um programa que peça ao usuário para digitar os valores de uma matriz quadrada de números inteiros de dimensão 4. Posteriormente, crie uma função que encontre o maior valor desta matriz e outra função que encontre o menor valor. Imprima os valores encontrados na função principal (main).

    #include<stdio.h>
    #include<conio.h>
    int main (void )
    {
      int matriz[3][3],i, j, maior,menor, posMenor,posMaior, TAM;
      
      printf ("\nDigite valor para os elementos da matriz\n\n");
      
      for ( i=0; i<3; i++ )
        for ( j=0; j<3; j++ )
        {
          printf ("\nElemento[%d][%d] = ", i, j);
          scanf ("%d", &matriz[ i ][ j ]);
        }
      
     
      for ( i=0; i<3; i++ )
        for ( j=0; j<3; j++ )
        {
          printf ("\nElemento[%d][%d] = %d\n", i, j,matriz[ i ][ j ]);
        }
    
        maior    = matriz[i];
        posMaior = 0;
        for (i = 1; i < TAM; i++) {
            if (matriz[i] > maior) {
                maior    = matriz[i];
                posMaior = i;
            }
        }
     
       
        menor    = matriz[0];
        posMenor = 0;
        for (i = 1; i < TAM; i++) {
            if (matriz[i] < menor) {
                menor    = matriz[i];
                posMenor = i;
            }
        }
     
    
        printf("Vetor: ");
        for (i = 0; i < TAM; i++) {
            printf("%i ", matriz[i]);
        }
     
        printf("\nMaior valor: %i - posicao: %i", maior, posMaior+1);
        printf("\nMenor valor: %i - posicao: %i", menor, posMenor+1);
     
       
      getch();
      return(0);
    }

     

  14. Preciso de ajuda em um código.

    Tenho esse código em C ++ e preciso de transformar ele em C. 

    image.png.f7c5e73e42dc0b6163f8393dab7102d2.png

     

    A introdução do exercício é a seguinte:

    Elabore um algoritmo que leia do teclado o nome de 20 pessoas, com no máximo 10 letras cada, e suas respectivas idades em anos. Armazene-os em um vetor e em seguida imprima a lista contendo os 20 nomes lidos e suas respectivas idades.

    Ja fiz isso:

     

    #include <stdio.h>
    
    int main()
    {
        char nome [10];
        int idade;
        int pes [20], i=0;
        while (i<20)
        {
            printf("Digite o nome da pessoa:");
            scanf("%d", & pes[20]);
            printf("Digite a idade da pessoa:");
            scanf("%d", & idade);
            i++ 
            
        }
            
        while (i<20)
        {
            printf("Nome:%d", pes[20]);
            printf("Idade: %d", idade);
            i++
        }
    
        return 0;
    }

     

  15. Meu programa nao roda:

     

    Crie um procedimento que receba 2 números, calcule e imprima o MMC destes

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int mmc(int num1, int num2, int a);
     int main ()
      {
        int resto, a, b, num1,num2;
    
        a = num1;
        b = num2;
    
        do {
            resto = a % b;
    
            a = b;
            b = resto;
    
        } while (resto != 0);
    
        return 0;
    }
    int mmc (int num1, int num2,int a)
    {
        return( num1 * num2) / a;
    }

    números.

    • Curtir 1

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!