Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Matriz Unidimensional


MarcelPR

Pergunta

Olá galera, preciso de uma ajuda com este código!

não consigo fazer imprimir uma matriz unidimensional.

Faça um programa que leia dez números inteiros, armazena-os em uma matriz unidimensional e inverta a ordem dos números na matriz. Imprima na tela os números nas ordens direta e reversa.

#include <stdio.h>
#include <conio.h>

void main () 
{ 

      int maxA[10], maxB[10], i, j;

      for (i=0; i<10; i++) 
      { 
            printf (" Informe o Valor ");

            scanf ( "%d", &maxA[i] );

            if ( maxA[i]%2 == 0) 
            {
                  maxB[i]= maxA[i]*5;
            } 
            else 
            {
                  maxB[i] = maxA[i]+5;
            }
      }
      for (j=0; j<10; j++) 
      {
            printf ("%d", maxB[i]);
      }
getch();
}

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Marcel,

seu código está correto você só esqueceu de um detalhe:

for (j=0; j<10; j++)
{
     printf ("%d", maxB[i]);
}

Nessa parte você colocou o valor maxB com a variável i.

O correto é alterar para j, já que no laço você colocou j como variavel para fazer a iteração.

Troque a variável que dará certo.

Att

Link para o comentário
Compartilhar em outros sites

  • 0

Ele até roda certo

mas na hora de imprimir, está imprimindo uns numeros nada a ve.

Roda ai pra voce ver!

o certo seria imprimir a lista dos numeros na ordem digitada, e na ordem inversa,

mas está fazendo o calculo com eles!

Obrigado!

#include <stdio.h>
#include <conio.h>

void main () 
{ 

      int maxA[10], maxB[10], i, j;

      for (i=0; i<10; i++) 
      { 
            printf ("Informe o Valor ");

            scanf ("%d", &maxA[i]);

            if ( maxA[i]%2 == 0) 
            {
                  maxB[i]= maxA[i]*5;
            } 
            else 
            {
                  maxB[i] = maxA[i]+5;
            }
      }
      for (j=0; j<10; j++) 
      {
            printf ("%d", &maxB[j]);
      }
getch();
}

Editado por MarcelPR
Link para o comentário
Compartilhar em outros sites

  • 0

Sim, só fiz o teste pra ver como ficava, mais o código mesmo esta sem o &!

Mais mesmo sem ele não está totalmente correto, não está imprimindo os numero q eu digitei , está fazendo a soma\multiplicação, e não está imprimindo em duas matrizes unidimensionais separadas também!

Link para o comentário
Compartilhar em outros sites

  • 0

Será que eu poderia trocar o *5 por *1 e tirar o +5 do código???

Porque ai imprimi o que eu digitei na matriz?

Ou precisa ficar?

E para imprimir a forma reversa também?

#include <stdio.h>
#include <conio.h>

void main() 
{ 

      int maxA[10], maxB[10], i, j;

      for (i=0; i<10; i++)
      { 
            printf ("Informe o Valor ");

            scanf ("%d", &maxA[i]);

            if ( maxA[i]%2 == 0) 
            {
                  maxB[i]= maxA[i]*1;
            } 
            else 
            {
                  maxB[i] = maxA[i]+0;
            }
      }
      for (j=0; j<10; j++) 
      {
            printf ("%d\t", maxB[j]);
      }
getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que você tá usando código desnecessário. Se é pra ler 10 números e armazená-los em um vetor e depois inverter não precisa dessa parte:

...
if ( maxA[i]%2 == 0)
            {
                  maxB[i]= maxA[i]*1;
            }
            else
            {
                  maxB[i] = maxA[i]+0;
            }
...
Faz assim:
...
for (i=0; i<10; i++)
      {
            printf ("Informe o Valor ");

            scanf ("%d", &maxA[i]);

            maxB[9-i]= maxA[i];            
      }
...

O vetor maxA tem os números na ordem certa e maxB tem os números na ordem inversa. É só imprimir os dois em outro for e pronto.

Não testei o código, qualquer coisa posta ai.

Link para o comentário
Compartilhar em outros sites

  • 0

Assim?

os dois printf juntos, um com maxA outro com maxB[9-i] ??

não parece estar correto qunado roda.

#include <stdio.h>
#include <conio.h>

void main() 
{ 

      int maxA[10], maxB[10], i, j;

      for (i=0; i<10; i++)
      { 
            printf ("Informe o Valor ");

            scanf ("%d", &maxA[i]);
            
            maxB[9-i]= maxA[i];   
      }
      for (i=0; i<10; i++)    
      {
            { 
            printf ("%d\t", maxA[i]);
            printf ("%d\t", maxB[9-i]);
            }
      
      }
      
getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Você entendeu errado. No segundo for não precisa fazer printf ("%d\t", maxB[9-i]) já que a maxB já contem os elementos na ordem inversa, basta fazer assim:

...
for (i=0; i<10; i++)    
      {
            {
            printf ("%d\t", maxA[i]);
            printf ("%d\t", maxB[i]);
            }
      
      }
...

Eu utilizei maxB[9-i]= maxA para maxB receber os valores de trás para frente. Testa agora e posta o resultado.

Link para o comentário
Compartilhar em outros sites

  • 0

Agora sim, muito obrigado!

Só mudei um negócio

fiz dois for separado, porque estava imprimindo misturado as duas matrizes

está correto agora!

abraço!

RESOLVIDO!

#include <stdio.h>
#include <conio.h>

void main() 
{ 

      int maxA[10], maxB[10], i, j;

      for (i=0; i<10; i++)
      { 
            printf ("Informe o Valor ");

            scanf ("%d", &maxA[i]);
            
            maxB[9-i]= maxA[i];   
      }
      {
      for (i=0; i<10; i++)    
            printf ("%d\t", maxA[i]);
      }
      
      {
      for (i=0; i<10; i++)
            printf ("%d\t", maxB[i]);
      }
      
getch();
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...