GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#include "defs.h"12# define NPT 20003int npt,perm[NPT+1],had[NPT+1];4FILE *fopen(),*op;56int7main (int argc, char *argv[])8{ int arg,nb,nperms,i,j,k,l,n; char cyc,outf[80],err; int c;9/* Default outf=gpname.inperm */10err=0; arg=1; if (argc<=arg) {err=1; goto error;}11strcpy(outf,argv[arg]); strcat(outf,".");12arg++; if (argc<=arg) strcat(outf,"inperm"); else strcat(outf,argv[arg]);13op=fopen(outf,"w");14printf("Input npt, nperms, init. nb.\n");15scanf("%d%d%d",&npt,&nperms,&nb);16if (npt>NPT)17{ fprintf(stderr,"npt too big. Increase NPT.\n"); exit(1);}18fprintf(op,"%4d%4d%4d%4d\n",npt,nperms,nb,0);19if (nb!=0)20{ printf("Input initial base points.\n");21for (i=1;i<=npt;i++) had[i]=0;22for (i=1;i<=nb;i++)23{ scanf("%d",&n);24if (n<=0 || n>npt || had[n])25{ fprintf(stderr,"Invalid or repeated base point %d\n",n); exit(1);}26perm[i]=n; had[n]=1;27}28if (npt>=1000)29{ for (i=1;i<=nb;i++) fprintf(op,"%5d",perm[i]); fprintf(op,"\n");}30else31{ for (i=1;i<=nb;i++) fprintf(op,"%4d",perm[i]); fprintf(op,"\n");}32}33printf("Now input perms in cyclic not'n. End each perm with a '.'.\n");34for (i=1;i<=nperms;i++)35{ for (j=1;j<=npt;j++) { perm[j]=j; had[j]=0;}36while ((c=getchar()) != '.') if (c=='(')37{ cyc=1; j=0;38while (cyc)39{ scanf("%d",&l);40if (l<=0 || l>npt || had[l])41{ fprintf(stderr,"Invalid or repeated point %d\n",l); exit(1);}42had[l]=1;43if (j==0) {j=l;k=l;} else {perm[k]=l;k=l;}44while ((c=getchar())==' '); if (c==')') {cyc=0; perm[k]=j;}45}46}47if (npt>=1000)48{ for (j=1;j<=npt;j++) fprintf(op,"%5d",perm[j]);fprintf(op,"\n");}49else50{ for (j=1;j<=npt;j++) fprintf(op,"%4d",perm[j]);fprintf(op,"\n");}51}52error: if (err)53{ fprintf(stderr,"Usage makegp gpname [outf].\n"); exit(1);}54exit(0);55}565758