问题描述
- 用c++语言编写s=1+(1+2)+(1+2+3)+````+(1+2+3+...+n) 程序错了
- #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;}
解决方案
错误的地方:
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;
}
解决方案二:
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++)
时间: 2024-10-01 17:49:54