Several issues:
You can compute your square root, square, and cube all as part of the printf statement:
printf( "%d %f %d %d\n", num, sqrt((double) num), num * num, num * num * num );
Field width specifiers are your friends - you can tell printf exactly how wide you want each column to be.  Example:
printf( "%6d%12.2f%12d%12d", num, sqrt((double) num), num * num, num * num * num );
This means the column for num is 6 characters wide, the column for square root is 12 characters wide, with 3 characters reserved for the decimal point and two following digits, and the columns for square and cube are 12 characters wide.  Example:
printf( "%6s%12s%12s%12s\n", "base", "root", "square", "cube" );
printf( "%6s%12s%12s%12s\n", "----", "----", "------", "----" );
for (int i = lower; i <= upper; i++ )
  printf( "%6d%12.2f%12d%12d\n", i, sqrt( (double) i ), i*i, i*i*i );
Which gives output like this (lower == 1, upper == 10):
  base        root      square        cube
  ----        ----      ------        ----
     1        1.00           1           1
     2        1.41           4           8
     3        1.73           9          27
     4        2.00          16          64
     5        2.24          25         125
     6        2.45          36         216
     7        2.65          49         343
     8        2.83          64         512
     9        3.00          81         729
    10        3.16         100        1000
Full example:
#include <stdio.h>
#include <math.h>
int main( void )
{
  int lower = 0, upper = 0;
  
  printf( "Gimme a lower value: " );
  while ( scanf( "%d", &lower ) != 1 || (lower < 0 || lower > 50 ))
  {
    /**
     * Clear any non-numeric characters from the input stream
     */
    while ( getchar() != '\n' ) 
      ; // empty loop
    printf( "Nope, try again: " );
  }
  printf( "Gimme an upper value: " );
  while ( scanf( "%d", &upper ) != 1 || (upper < lower || upper > 50 ))
  {
    while( getchar() != '\n' )
      ; // empty loop
    printf( "Nope, try again: " );
  }
  printf( "%6s%12s%12s%12s\n", "base", "root", "square", "cube" );
  printf( "%6s%12s%12s%12s\n", "----", "----", "------", "----" );
  for (int i = lower; i <= upper; i++ )
    printf( "%6d%12.2f%12d%12d\n", i, sqrt( (double) i ), i*i, i*i*i );
  return 0;
}
I've written the input section such that it will reject inputs like foo or a123.  It will not properly handle inputs like 12w4, but that would make the example more complicated than it needs to be (you're not asking about input validation, you're asking about computation and formatting).  Example run:
$ ./table
Gimme a lower value: foo
Nope, try again: a123
Nope, try again: 123
Nope, try again: 1
Gimme an upper value: 100
Nope, try again: 50
  base        root      square        cube
  ----        ----      ------        ----
     1        1.00           1           1
     2        1.41           4           8
     3        1.73           9          27
     4        2.00          16          64
     5        2.24          25         125
     6        2.45          36         216
     7        2.65          49         343
     8        2.83          64         512
     9        3.00          81         729
    10        3.16         100        1000
    11        3.32         121        1331
    12        3.46         144        1728
    13        3.61         169        2197
    14        3.74         196        2744
    15        3.87         225        3375
    16        4.00         256        4096
    17        4.12         289        4913
    18        4.24         324        5832
    19        4.36         361        6859
    20        4.47         400        8000
    21        4.58         441        9261
    22        4.69         484       10648
    23        4.80         529       12167
    24        4.90         576       13824
    25        5.00         625       15625
    26        5.10         676       17576
    27        5.20         729       19683
    28        5.29         784       21952
    29        5.39         841       24389
    30        5.48         900       27000
    31        5.57         961       29791
    32        5.66        1024       32768
    33        5.74        1089       35937
    34        5.83        1156       39304
    35        5.92        1225       42875
    36        6.00        1296       46656
    37        6.08        1369       50653
    38        6.16        1444       54872
    39        6.24        1521       59319
    40        6.32        1600       64000
    41        6.40        1681       68921
    42        6.48        1764       74088
    43        6.56        1849       79507
    44        6.63        1936       85184
    45        6.71        2025       91125
    46        6.78        2116       97336
    47        6.86        2209      103823
    48        6.93        2304      110592
    49        7.00        2401      117649
    50        7.07        2500      125000