C语言循环题!编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。

【问题描述】编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。【输入形式】输入一个正整数n,根据求s公式计算s并输出。【输出形式】输... 【问题描述】编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。
【输入形式】输入一个正整数n,根据求s公式计算s并输出。
【输出形式】输出的为s的结果。
【样例输入】5
【样例输出】35

#include<stdio.h>
int main(void)
{
int i,j,n;
double item,s;
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++){
item=1;
for(j=1;j<=n;j++)
item=item+j;
s=s+item;
}
printf("%d\n",s);
return 0;
}
这是我自己写的,然而提交后测试数据显示输出错误,请大神帮我指点我下哪里出了问题。
展开
 我来答
iiiiiiiipl
2019-06-03 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.7万
展开全部

修改如下

#include<stdio.h>

int main(void)

{

int i,j,n;

int item,s; //此处数据类型定义错误;

scanf("%d",&n);

s=0; n=5;

for(i=1;i<=n;i++){

item=0;  //item应该是从0开始;

for(j=1;j<=i;j++) //第二层循环应该小于等于i;

item=item+j;

s=s+item;

}

printf("%d\n",s);

return 0;

}

图为原程序在第二层循环加了个输出,查出第二层循环有问题。

扩展资料:

c语言书写规则:

1.一个说明或一个语句占一行。

2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

参考资料:

百度百科-c语言

问明6E
高粉答主

2019-05-31 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.5万
展开全部

#include&lt;stdio.h&gt;

main()

{

int n,i,j,sum=0;

scanf("%d",&n);

for(i=1;i&lt;=n;i++){

for(j=1;j&lt;=i;j++){

sum+=j;

}

}

printf("%d\n",sum);

}

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mlper_
2016-04-20 · TA获得超过8016个赞
知道大有可为答主
回答量:4863
采纳率:78%
帮助的人:1192万
展开全部
首先,你输出的格式不对,s是double型的数,你却写了%d,应该改为printf(%f\n",s)
其次,你循环条件设的不对,里面的j循环条件应该改为for(j=1;j<=i;j++)
还有就是item的值设置为0比较好,这样比较好计算
修改后的代码如下
#include<stdio.h>
int main(void)
{
int i,j,n;
double item,s;
scanf("%d",&n);
s=0;

for(i=1;i<=n;i++){
item=0;
for(j=1;j<=i;j++)
item=item+j;

s=s+item;

}
printf("%f\n",s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhouliuying
高粉答主

推荐于2018-03-01 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部

3个错误:

1、第9行,item=1应该是item=0

2、第10行,j<=n应该是j<=i

3、第14行,%d应该是%lf

除此之外:思路很蠢,算法过于复杂,对于每个累加项,每次都要从1开始加。

#include <stdio.h>
void main(){
int i,n,item=0,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{item+=i;s+=item;}
printf("%d\n",s);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜独行孤单
2016-04-20 · TA获得超过3458个赞
知道大有可为答主
回答量:2803
采纳率:82%
帮助的人:612万
展开全部
#include <stdio.h>
void main()
{
int n;
float s=0,t=0;
scanf("%d",&n);
for(int i=1;i<=n;i++);
{
s+=i;
a+=s;
}
printf("%d",s);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式