Ir ao conteúdo
  • Cadastre-se

C++ Substituir Números determinados em Matriz


zjoãozinho

Posts recomendados

Boa tarde! 

Estou fazendo esse código no qual preciso imprimir a matriz com todos os números digitados e substituir números iguais ou maiores que 30 por 0, mas quando executo o algoritmo, não imprimi a matriz com o número 0 no lugar de números >= 30. Se alguém poder me ajudar ficarei muito agradecido!

<>

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, j, A[6][4], b[6][4] = {0};
    int contador = 0;
    int c = 0, L = 0;
    for (i = 0; i < 6; i++)
    {
    for (j = 0; j < 4; j++)
        {
                printf("Digite o valor para A[%d][%d]= ", i, j);
                scanf("%d", &A[i][j]);
            if (A[i][j] > 30)
            {
                contador++;
            }

            if (A[i][j]>=30 && A[i][j]==0)

            {
                b[L][c] = A[i][j];                      
                c++;
            if (c > 3)
                {
                    c = 0;
                    L++;
                }
            }
        }
    }
            printf("\nMaiores que 30-%d\n\n",contador);
            printf("  Matriz A  OriginaL      Matriz B com nenhum numero 30\n\n");
    for (i = 0; i < 6; i++)
    {
    for (j = 0; j < 4; j++)
            printf("%4d", A[i][j]);
        printf("   <------>   ");
    for (j = 0; j < 4; j++)
        if(b[i][j] )printf("%4d", b[i][j]);
            printf("\n");
    }
    return 0;
}

<>

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

@zjoãozinho    essa linhas aqui não vão muito bem , não:

if (A[i][j]>=30 && A[i][j]==0)  // se for maior ou iguaL a 30 e também se esse mesmo numero for igual a zero ?
{                               // isso nunca vai acontecer . !
    b[L][c] = A[i][j];          // e mesmo se acontecesse , iria armazenar esse numero , 
                                //  que não pode , na matriz b

e não escreve os valores zero da matriz b , por que tem esse   if   aqui

for (j = 0; j < 4; j++)
    if(b[i][j] )  printf("%4d", b[i][j]);  //  o 4d significa que vai escrever os 
                                           //  numeros formatando pela Quarta coluna

impedindo que o compilador faça isso , !

e então removendo  esse if , escreveria todos os elementos da matriz b , e seria assim

for (j = 0; j < 4; j++)
    printf("%4d", b[i][j]);  //  o 4d significa que vai escrever os 
                             //  numeros formatando pela Quarta coluna

 

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