Tengo un problmea con mi codigo resulta que lo que hace es leer las columnas de un archivo y los datos los guarda en una matriz la cosa es que cuando quiero leer esos elementos de matriz siempre valen 0 y no se porque....
 
cuando imprimo la matriz entera todo va bien pero si quiero imprimir un elemento puntual me sale 0.000 que es lo que esta mal?  
Código:
 #include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (){
 FILE *dato;
 dato=fopen("archi","r");
 char linea[100];
 float m[100][3];
 int i;
for (i=0;i<=100;i++){
 while(fgets(linea,100,dato)!=NULL)
    {
     fscanf(dato,"%f %f %f",&m[i][0],&m[i][1],&m[i][2]);
     printf("%f %f %f %f\n",m[i][0],m[i][1],m[i][2]); //cuando imprimo esto todo sale bien
    }
                                 }
     // si hago esto me aparece 0.000
     // printf("%f \n",m[10][1]);
  fclose(dato);                        
                   
}