double p[MAX][1];
Esta declaración no tiene demasiado sentido. Si pretendes almacenar dos números en cada posición de "p" tienes que declarar la variable así:
double p[MAX][2];
De esta forma, para cada p
dispones de dos espacios, uno para cada numero.
Ahora vamos con las cadenas:
char nombre[MAX];
Esta declaración está mal. Las cadenas de caracteres no se usan exactamente igual que el resto de "tipos nativos". Me explico:
Si intentas almacenar "hola" en C necesitas (al menos) 5 bytes de memoria... si en cambio intentas almacenar "mensaje", la cantidad de memoria requerida asciende a 8 bytes. En cambio, en un int todos los números van a ocupar 4 bytes... ya estés almacenando el 0 o el 5.234.045.
Dicho esto, cada cadena de caracteres es, como su propio nombre indica, una secuencia de tipo "char". Esto quiere decir que "char nombre[MAX]" únicamente te va a permitir almacenar una cadena de caracteres... cuya longitud máxima será MAX-1. Si tu idea es poder almacenar MAX cadenas de caracteres diferentes la declaración debería quedar así:
char nombre[MAX][20];
Esto suponiendo que cada "nombre" no vaya a ocupar más de 19 caracteres.
Si miramos ahora el bucle for, tenemos:
for(i=0;i<n;i++)
fscanf(txt
,"%s %lf %lf",&nombre
[MAX
],&p
[i
][0],&p
[i
][1]);
Esto, como bien has indicado, está mal. Aplicando los cambios que hemos comentado anteriormente, este bucle debería lucir más o menos así:
for(i=0;i<n;i++)
fscanf(txt
,"%s %lf %lf",&nombre
[i
],&p
[i
][0],&p
[i
][1]);
Fíjate que ha desaparecido toda referencia a "MAX", lo cual tiene sentido, ya que intentamos guardar cada nombre en una posición diferente.
Consejos finales:
* Deberías validar que "n" se encuentra dentro del rango [1..13], ya que si te da por poner una cantidad superior vas a escribir en memoria que no te pertenece y eso te va a dar problemas.
* Deberías poner a las variables nombres con significado propio, "p" o "n" no dicen absolutamente nada y eso dificulta la lectura del código.
* Deberías tabular el código con criterio, mejoras la legibilidad del código.
Un saludo.