I don't understand why you're using array
and math mode.
Here are three proposals. The first one suffers from too big column headers, the other two solve this problem by making a symbolic header.
The packages booktabs
and siunitx
are necessary only for the last table format.
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs,siunitx}
\newcommand{\manyrows}[1]{%
\begin{tabular}{@{}c@{}}\strut#1\strut\end{tabular}%
}
\newcommand{\coldesc}[3]{%
\multicolumn{#1}{l}{\footnotesize #2: #3} \\
}
\begin{document}
\begin{table}[htp]
\centering
\begin{tabular}{|*{5}{c|}}
\hline
Student &
\manyrows{Length of the \\ pendulum (cm)} &
\manyrows{No. of \\ oscillations ($n$)} &
\manyrows{Total time for ($n$) \\ oscillation(s)} &
\manyrows{Time \\ period(s)} \\
\hline
I & 64.0 & 8 & 128.0 & 16.0 \\
\hline
II & 64.0 & 4 & 64.0 & 16.0 \\
\hline
III & 20.0 & 4 & 36.0 & 9.0 \\
\hline
\end{tabular}
\caption{This table is too wide}
\end{table}
\begin{table}[htp]
\centering
\begin{tabular}{|*{5}{c|}}
\hline
Student & (A) & (B) & (C) & (D) \\
\hline
I & 64.0 & 8 & 128.0 & 16.0 \\
\hline
II & 64.0 & 4 & 64.0 & 16.0 \\
\hline
III & 20.0 & 4 & 36.0 & 9.0 \\
\hline
\coldesc{5}{(A)}{Length of the pendulum (cm)}
\coldesc{5}{(B)}{No. of oscillations ($n$)}
\coldesc{5}{(C)}{Total time for ($n$) oscillation(s)}
\coldesc{5}{(D)}{Time period(s)}
\end{tabular}
\caption{This table is better}
\end{table}
\begin{table}[htp]
\centering
\begin{tabular}{
l
S[table-format=2.1]
S[table-format=1.0]
S[table-format=3.1]
S[table-format=2.1]
}
\toprule
Student & {(A)} & {(B)} & {(C)} & {(D)} \\
\midrule
I & 64.0 & 8 & 128.0 & 16.0 \\
II & 64.0 & 4 & 64.0 & 16.0 \\
III & 20.0 & 4 & 36.0 & 9.0 \\
\bottomrule
\coldesc{5}{(A)}{Length of the pendulum (\si{cm})}
\coldesc{5}{(B)}{No. of oscillations ($n$)}
\coldesc{5}{(C)}{Total time for ($n$) oscillation(s)}
\coldesc{5}{(D)}{Time period(s)}
\end{tabular}
\caption{This table is even better}
\end{table}
\end{document}
