hola...
[Warning] passing arg 1 of `fscanf' makes pointer from integer without a cast
esto te dice que lo que estás pasando de parámetro 1 a fscanf es erróneo... si vemos la definición de fscanf:
int fscanf (FILE *stream, const char *template, ...)
se ve que el primer parámetro es la dirección a un identificador de archivo... pero vos no abriste ningún archivo... entonces deduzco que quisiste usar "scanf" y no fscanf, veamos la definición de scanf...
int scanf (const char *template, ...)
entonces lo que vos querés hacer se hace así:
scanf("%d",&opc);
PD: Cuando tengas un error y aparezca el nombre de una función como parte de la descripción, búscala en la web para saber cuales son sus argumentos...
S2