```/* nag_specfun_2f1_real (s22bec) Example Program.
*
* Copyright 2017 Numerical Algorithms Group.
*
* Mark 26.2, 2017.
*/

#include <stdio.h>
#include <nag.h>
#include <nag_stdlib.h>
#include <nags.h>

void construct_table(double a, double b, double c);

int main(void)
{
/* Scalars */
Integer exit_status = 0;
Integer kx;
double a, b, c, f, x;
/* Nag Types */
NagError fail;

INIT_FAIL(fail);

printf("nag_specfun_2f1_real (s22bec) Example Program Results\n\n");

a = 1.2;
b = -2.6;
c = 3.5;

construct_table(a, b, c);

for (kx = 1; kx < 22; kx++) {
x = -4.0 + ((double) (kx - 1)) * 0.25;
/* Evaluate Real Gauss hypergeometric function 2F1(a,b;c;x) using
* nag_specfun_2f1_real (s22bec).
*/
f = nag_specfun_2f1_real(a, b, c, x, &fail);
switch (fail.code) {
case NE_NOERROR:
case NW_UNDERFLOW_WARN:
case NW_SOME_PRECISION_LOSS:
case NE_TOTAL_PRECISION_LOSS:
printf("    %10.2f     %10.4f\n", x, f);
break;
case NE_INFINITE:
case NW_OVERFLOW_WARN:
case NE_OVERFLOW:
if (f >= 0.0)
printf("    %10.2f   %13s\n", x, "+Infinity");
else
printf("    %10.2f   %13s\n", x, "-Infinity");
break;
case NE_CANNOT_CALCULATE:
printf("    %10.2f   %13s\n", x, "NaN");
break;
default:
printf(" Illegal parameter.");
exit_status = 1;
goto END;
break;
}
}
END:
return exit_status;
}

void construct_table(double a, double b, double c)
{
printf("            a              b              c\n");
printf("+--------------+--------------+--------------+\n");
printf("    %10.2f     %10.2f     %10.2f\n\n", a, b, c);
printf("            x    2F1(a,b;c;x)\n");
printf("+--------------+--------------+\n");
return;
}
```