C语中S=1+(1+2)+(1+2+3)+(1+2+3+4)...的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:28:12
答案是
#include "stdio.h"
void main()
{ int n,i,j;
long s=0;
printf("Please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{
s+=j;
}
printf("s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+…+n)=%ld",s);

}
我的问题1:程序中"for(i=1;i<=n;i++) "有什么用?直接用:for(j=1;j<=i;j++)
{
s+=j; "
就可以求出S了 为什么还要定义i呢?
问题2:程序中"s+=j; "是不是不够啊?是不是要用"sum+=j;
s+=sum;
" 用2次自加? 如果只有"s+=j; "应该只是求出1+2+3+4...啊~~~
谢谢

朋友``你没搞清楚,它代码里面的s和输出中的s不是一个含义.

for(j=1;j<=i;j++)
{
s+=j;
}

这个s是算出m1=1 m2=(1+2) m3=(1+2+3) m4=(1+2+3+4)....的和;

for(i=1;i<=n;i++)
这个循环的作用有两个:
一个是:i确定m1,m2,m3是从1加到多少的上限
一个是:n确定m1,m2,m3...要加多少个

。。。。。无语
i++和j++ 是自己每循环一次就增加1 是先加了在增加1。
s+=j 这个是错误的 应该是S=j+i

SUM是什么?s j i都是变量 根本没SUM这个变量

看了下,准备回答呢,结果貌似你已经解决了。
这个程序是2层for嵌套循环。要一层的话就是1+2+...。
2层就是正确的结果了。

看了下,准备回答呢,结果貌似你已经解决了。
这个程序是2层for嵌套循环。要一层的话就是1+2+...。
2层就是正确的结果了

void main()
{ int n,i,j;
long s=0;
printf("Please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{
s+=j;
}
printf("s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+…+n)=%ld",s);

只差一步就解决了