2 morethansea morethansea 于 2016.03.20 00:15 提问

用c++语言编写s=1+(1+2)+(1+2+3)+````+(1+2+3+...+n) 程序错了
c++

#include
using namespace std;
int main()
{
int n, sum;
cout << "请输入N:" << endl;
cin >> n;
for (int i = 1; i < n; i++)
{
for (int j = 1; j < i; j++)
{
sum = sum + j;
}

}
cout << "结果为:" << sum;
system("pause");
return 0;

}

2个回答

u011843299
u011843299   2016.03.20 00:54
已采纳

错误的地方:
1、首先include后面没有包含
2、sum 值没有初始化;
3、sum是局部变量,for语句执行完成就释放了,应该定位为static变量
4、for循环中应添加相等的情况,也就是注意边界。

正常程序如下:
#include
using namespace std;
int main()
{
int n;
static int sum=1;
cout << "请输入N:" << endl;
cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{

        sum = sum + j;

    }
}
cout << "结果2为:" << sum;
system("pause");
return 0;

}

qq423399099
qq423399099   Ds   Rxr 2016.03.20 10:29

1.sum要初始化成0,否则是个垃圾值。int n, sum;改为int n, sum = 0;(并没有必要弄成static)
2.两个for循环都要加上=号
for (int i = 1; i < n; i++)改为for (int i = 1; i <= n; i++)
for (int j = 1; j < i; j++)改为for (int j = 1; j <= i; j++)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!