What's wrong with my proof? If $n\times n$ matrix $A$ is diagonalizable, then every non-zero vector is an eigenvector. So my teacher says that my proof for the theorem above is wrong. Would you mind pointing out the problems? 

Let $A$ be an $n \times n$ matrix. If $A$ is diagonalizable, then every non-zero vector in $\mathbb R^n$ is an eigenvector. 

Proof: 
$A$ is diagonalizable so there is a basis $v_1,\ldots,v_n$  of $\mathbb R^n$ consisting of eigenvectors of $A$. There is therefore a scalar $\lambda$ such that $Av_i =\lambda v_i$. Let $v$ be an arbitrary vector in $\mathbb{R}^n$. Since $v_1,\ldots,v_n$ is a basis of  $\mathbb R^n$, there must exist scalars $c_1,\ldots,c_n$ such that $v= c_1 v_1+\cdots+c_n v_n$. 
$$\begin{align}
Av &= A(c_1 v_1+\cdots+c_n v_n) \tag{1}\\ 
    &= c_1 A v_1 +\cdots+ c_n A v_n \tag{2}\\ 
    &= c_1(\lambda v_1)+\cdots+c_n(\lambda v_n) \tag{3}\\ 
    &= \lambda (c_1 v_1+\cdots+c_n v_n) \tag{4} \\
    & = \lambda v \tag{5}
\end{align}$$ 
Therefore, $v$ is an eigenvector of $A$. $\square$ 
 A: "Being eigenvectors [of $A$], there is therefore a scalar $\lambda$ such that $AV_i=\lambda v_i.$"
This isn't necessarily true. Rather, for each $i,$ we know that $v_i$ is an eigenvector of $A,$ and so there is a scalar $\lambda_i$ such that $Av_i=\lambda v_i.$ However, you're assuming that $\lambda_i$ is the same scalar for all $i,$ which need not be true.
For a simple counterexample, consider $$A=\begin{bmatrix}1 & 0\\0 & 2\end{bmatrix}.$$ This has two distinct eigenvalues, and is already diagonal. See if you can find the eigenvalues, first. Next, see if you can figure out the eigenvectors for each eigenvalue. Once you've done that, it should be obvious which vectors are not eigenvectors of $A.$
A: This theorem is true if the eigenvalues are all the same, as you suggest. But the eigenvalues could be different. Indeed, when $A = I$, which has only the eigenvalue $1$ with multiplicity $n$, then this statement is true (and this is clear, because $A \vec{v} = \vec{v}$ for all $\vec{v}$).
But this theorem breaks down when the matrix has differing eigenvalues, e.g.
$$A = \begin{bmatrix}
1 & 0 \\
0 & 2
\end{bmatrix}$$
which has eigenvalues $\lambda_1 = 1$, $\lambda_2 = 2$. It's eigenbasis is $\{\hat{e}_1, \hat{e}_2\}$ (the standard basis vectors). Yet many (in, fact most) linear combinations of them don't yield and eigenvector. For example, $\hat{e}_1 + \hat{e}_2$ is not an eigenvector, since
$$A (\hat{e}_1 + \hat{e}_2) = \hat{e}_1 + 2\hat{e}_2 \neq \lambda(\hat{e}_1 + \hat{e}_2)$$
for any value of $\lambda$. 
A: For every $v_i$ there is $\lambda$ such that $A v_i = \lambda v_i$, but it doesn't have to be the same $\lambda$ for all $v_i$.
Trivial counterexample: start with a diagonal matrix with $1$ and $2$ on the diagonal. Basis is $e_1$ and $e_2$ and the corresponding eigenvalues are $1$ and $2$. Only scalar multiples of $e_1$ and $e_2$ (individually) are eigenvectors and nothing else. For instance $e_1 + e_2$ is not.
A: In general, we do not have $Av_i = \lambda v_i$ with the same $\lambda$ for all $i=1,...,n.$.
If $v_i$ is an eigenvector, then denote the corresponding eigenvalue by $ \lambda_i$.
Here is an example: let $A=diag(1,2), v_1=(1,0)$ and $v_2=(0,1)$. $v_1$ and $v_2$ are eigenvectors of $A$, but $v_1+v_2$ is not an eigenvector.
