C++,有兴趣的看下?解决办法

C++,有兴趣的看下?
#include<iostream.h>
void main()
{
int n,sum=0;
for(n=0;sum<1000;n++)
{
sum+=n*n;
}
n=n-2;
cout<<"第一次计算满足要求的n的最大值为:"<<n<<endl;

sum=0;
for(n=0;sum<1000;++n)
{
sum+=n*n;
}
n=n-2;
cout<<"第二次计算满足要求的n的最大值为:"<<n<<endl;

sum=0;
n=0;
do
{
n++;
sum=sum+n*n;
}while(sum<1000);
n--;
cout<<"第三次计算满足要求的n的最大值为:"<<n<<endl;

sum=0;
for(n=0;n<=13;n++)
sum=sum+n*n;
cout<<"总和为"<<sum<<endl;


}三种不同方式求满足sum<100时的最大值n问题?两个for结构方式,我本来会以为不同,结果却是相同的,敢问高人,for语句中的++n和n++是在判断前后进行加呢?还是在for语句块运行完一次进行加呢?
C++

------解决方案--------------------
for当中的前++和后++效果一样,都是判断后相加再判断,如此循环;
不过前++相对来说快点 推荐前++
------解决方案--------------------
相当于
for(n = 0; sum < 1000 ;)
{
   ....
   n++;     
}

一般建议使用++n,效率优于n++,因为前者直接将n+1的值覆盖n,后者有个临时变量保存n的原值,然后将n的值自增1,返回n的原值,那个临时变量的使用占用多余的空间和时间
------解决方案--------------------
内置数据类型,编译器都会进行优化,++n和n++的效率是一样的,但对于自定义的复合类型,编译器就不一定会优化,所以一般建议是有前置自增/自减操作符(当然在不影响真确结果的前提下,例如自增表达式是一个独立的表达式)