どうかご教授を願います。
#include<stdio.h>
#define NUM_POINT 100
int main( void )
{
int i, j, k;
int point[ NUM_POINT ] = {
1, 4, 9, 19, 8, 10, 10, 9, 15, 10,
2, 19, 20, 4, 20, 7, 3, 15, 16, 16,
17, 14, 12, 9, 2, 5, 5, 13, 1, 19,
5, 0, 3, 12, 17, 9, 1, 7, 16, 16,
15, 18, 12, 14, 20, 10, 20, 2, 2, 15,
17, 19, 7, 8, 8, 9, 11, 11, 1, 10,
9, 6, 11, 12, 17, 5, 19, 18, 10, 14,
12, 3, 9, 3, 17, 9, 11, 14, 9, 14,
7, 3, 12, 14, 11, 18, 0, 2, 8, 1,
12, 18, 5, 0, 7, 1, 4, 6, 18, 14,
};
int up15 = 0;
int dist[ 21 ];
k = 0;
for( i = 0; i <= 20; i++ ) dist[ i ] = 0;
for( j = 0; j <= NUM_POINT; j++ )
{
if( j == point[ j ] )
{
dist[ point[ j ] ] += dist[ i ];
}
if( dist[ i ] >= 15 )
{
up15++;
}
}
printf("15点以上の学生は %d 人です.\n", up15);
printf("点数の分布は以下の通りです.\n");
for (i=0; i<=20; i++)
{
printf("%2d点: %d\n", i, dist[ i ]);
}
return 0;
}