Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alejandrodiaz en 5 Agosto 2015, 01:15 am



Título: ¿Se puede imprimir Dos columnas paralelas en C?
Publicado por: alejandrodiaz en 5 Agosto 2015, 01:15 am
Buenas, estoy aprendiendo en C y realizando ejercicios básicos que consigo de la web

El ejercicio me pide que imprima dos columnas una que vaya del 1 al 100 y otra del 100 al 1

Quisiera que me mostrara las columas de este modo:


Columna 1        Columna 2
       1                   100
       2                     99
       3                     98
       4                     97
 

Cada columna lleva un for, y de la manera en que los aplico me queda una columna sobre otra.

He buscado pero no encuentro nada identico en la web, he leido que no existe una funcion para hacer esto en C, solo usando los espacios en printf (eso hice pero me queda una sobre otra)

Entonces, ¿Se puede imprimir dos columnas paralelas en lenguaje C?

Gracias!


Título: Re: ¿Se puede imprimir Dos columnas paralelas en C?
Publicado por: engel lex en 5 Agosto 2015, 02:04 am
puedes intentar con tabulación o contando espacios...

con tabulación harías algo como

Código
  1. printf("\t%i,\t%i", columna1[i],columna2[i]);

puedes tambien usar ansi scape codes (https://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI)

o por ultimo podrías usar windows.h (asumiendo que ese es tu sistema operativo) y manejar la consola por medio de las api

Código
  1. #include <windows.h>
  2.  
  3. void gotoxy( int column, int line )
  4.  {
  5.  COORD coord;
  6.  coord.X = column;
  7.  coord.Y = line;
  8.  SetConsoleCursorPosition(
  9.    GetStdHandle( STD_OUTPUT_HANDLE ),
  10.    coord
  11.    );
  12.  }
  13.  
  14. int wherex()
  15.  {
  16.  CONSOLE_SCREEN_BUFFER_INFO csbi;
  17.  COORD  result;
  18.  if (!GetConsoleScreenBufferInfo(
  19.         GetStdHandle( STD_OUTPUT_HANDLE ),
  20.         &csbi
  21.         ))
  22.    return -1;
  23.  return result.X;
  24.  }
  25.  
  26. int wherey()
  27.  {
  28.  CONSOLE_SCREEN_BUFFER_INFO csbi;
  29.  COORD  result;
  30.  if (!GetConsoleScreenBufferInfo(
  31.         GetStdHandle( STD_OUTPUT_HANDLE ),
  32.         &csbi
  33.         ))
  34.    return -1;
  35.  return result.Y;
  36.  }