注册 登录
编程论坛 C++教室

请高手解释下原因!

zzzrrr 发布于 2008-07-26 00:14, 569 次点击
#include<iostream.h>
void main()
{
    int s=0;int n;
    int i;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        s=s+n;    //这里
    }
    cout<<s<<endl;
}
-------------------------------
#include<iostream.h>
void main()
{
    int s=0;int n;
    int i;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        s=s+i;   //这里
    }
    cout<<s<<endl;
}


我刚学想请问下为什么s=s+i和s=s+n的结果完全不同呢??
2 回复
#2
godzhu2008-07-26 00:24
cin>>n;                                    cin>>n;   
for(i=0;i<=n;i++)  和                      for(i=0;i<=n;i++)  
s=s+i;                                     s=s+n;
区别在于s=s+i 这里i初始值为0,循环n次累加   s=s+n  这里的n认作为你输入的数字然后在循环n次累加   结果当然不同  这个错误很严重
#3
godzhu2008-07-26 00:30
s=s+i
1到n的累加操作
s=s+n
n到n的累加操作
简单的说就是:比如说你输入10
那就是10的10次累加操作!
1