首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-04-21 
C++,有兴趣的看下?#includeiostream.hvoid main(){int n,sum0for(n0sum1000n++){sum+n*n}nn-2

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++的效率是一样的,但对于自定义的复合类型,编译器就不一定会优化,所以一般建议是有前置自增/自减操作符(当然在不影响真确结果的前提下,例如自增表达式是一个独立的表达式)

热点排行