Jump to content

[Resolvido] Print de matriz


gaspar1423

Recommended Posts

int values[] = {0, 1, 2, 65, 6, 66, 9, 67, 12, 90};
printf("%d %d", values[0], values[1]);
for (k = 2; k < sizeof values / sizeof *values; k += 2) printf(" %d %c", values[k], values[k + 1]);
Edited by pmg
esqueci-me do segundo valor no printf

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

int values[][] = {{0, 1, 2, 65, 6, 66, 9, 67, 12, 90},
                 {0, 1, 2, 65, 6, 66, 9, 67, 12, 90},
                 {0, 1, 2, 65, 6, 66, 9, 67, 12, 90}};
for (i = 0; i < 3; i++)
 for (k = 0; k < 10; k++)
   (!(k % 2) && k > 2) ? printf("%c|", values[i][k]) : printf("%d|", values[i][k]);

uma segunda solução

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

desculpa pelo código anterior, estava a ver uma cena na net e tens uns bugs

o seguinte foi testado

#include <stdio.h>

int main()
{
 int i, k;
/*
 int values[3][10] = {{0, 1, 2, 65, 6, 66, 9, 67, 12, 90},
                      {0, 1, 2, 65, 6, 66, 9, 67, 12, 90},
                      {0, 1, 2, 65, 6, 66, 9, 67, 12, 90}};
*/
/* ou assim == */
  int values[3][10] = {{0, 1, 2, 'A', 6, 'B', 9, 'C', 12, 'Z'},
                       {0, 1, 2, 'A', 6, 'B', 9, 'C', 12, 'Z'},
                       {0, 1, 2, 'A', 6, 'B', 9, 'C', 12, 'Z'}};
 for (i = 0; i < 3; i++) {
   for (k = 0; k < 10; k++)
     (k % 2 && k > 2) ? printf("%c|", values[i][k]) : printf("%d|", values[i][k]);
   printf("\n");
 }

 return 0;
}
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

O que quis dizer é que a solução do pmg estava para um array unidimensional e eu quero para uma array bidimensional. e pensei que tinha da fazer 3 ciclos, 1 para percorrer as linhas, outro para percorrer ate à 3ª coluna, e outro para as restantes.

Já tens aqui 2 soluções para imprimir os valores das colunas 1 e 2. Se são sempre estas 2 colunas, para que queres um ciclo? Não é necessário, torna-se menos eficiente do que um printf directo.

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Eu já vi as soluções e cheguei a uma mais simples depois de ver estas. Obrigado a todos 👍 :thumbsup:

Nao queres publicar a tua solucao?

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

Desculpem esqueci-me 😛

Aqui está:

for (i=0;i<10;i++){
 for (int j=0; j<10; j++) {
   if (matriz_int[i][j]>65) {
     printf("%c|",matriz_int[i][j]);
   }else{
     printf("%d|",matriz_int[i][j]);
   }
 }
 printf("\n");
}

isso não faz o que especificaste :

O que quero mesmo é garantir que os 3 primeiros caracteres sejam inteiros e que a partir da 3ª coluna da matriz e de 2 em 2 converta o número no seu caracter correspondente na tabela ascii

contra exemplo:

 int values[3][10] = {{66, 67, 68, 69, 70, 71, 72, 73, 74, 75},
                      {66, 67, 68, 69, 70, 71, 72, 73, 74, 75},
                      {66, 67, 68, 69, 70, 71, 72, 73, 74, 75}};
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.