C语言的问题,不知道怎么书写 题目编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。

#include <stdio.h>
int main()
{
int n;
float s=0,t=0;
scanf("%d",&n);
for('int i=1;i<=n;i++');
{
for('int j=1;j<=i;j++');
t=t+j;
s=s+t;

}
printf("%f\n&",s);
return 0;
}

麻烦告诉我如何解此题以及我的错误是什么。。。初学者没基础。。。谢谢啦

c语言还是c++,你是问的c语言就按照c语言来说啊。c语言要求main函数是没有返回值的,且所有类型定义都要在文件的开始,写成如下形式,当然下面的c++也可以编译通过。
语法错误:for循环中间不要有单引号,最后不能有分号“;”
逻辑错误:不用两层循环,一层就行了。
类型错误:不用float,就是int就行了,没必要用浮点数吗,又不是小数,怕不够用long来表示
#include <stdio.h>
void main()
{
int n,i;
int s=0,t=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t+i;
s=s+t;
}
printf("%d\n",s);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-27
你的错误比较多,语法错误有:for语句里不能定义变量,而且你还加单引号,for语句后面没有分号,最后一个printf也有问题。逻辑错误就没法讲了。
我照着你的思路给你写个正确的,你对比着看吧
#include <stdio.h>
int main()
{
int n,i,j;
int s=0,t=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
t=t+j;
}
s=s+t;
t=0;
}
printf("%d\n",s);
return 0;
}
还有一种更简单的:
#include<stdio.h>
int main()
{
int n,i;
int s=0,t=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t+i;
s=s+t;
}
printf("%d\n",s);
return 0;
}
第2个回答  2011-09-27
#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);
}本回答被提问者采纳
第3个回答  2011-09-27
#include <stdio.h>
int main()
{
int n;
float s=0,t=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
t = 0;
for(int j=1;j<=i;j++)
t=t+j;
s=s+t;

}
printf("%f\n",s);
return 0;
}

算法没有错。 关键是t 在内层循环结束后应该重置一次,要不然下一次使用时,初始值就是上一次 的值,会造成结果偏大。
第4个回答  2011-09-27
把float改为long,去掉return 0;
相似回答