c语言编写计算1*2*3+3*4*5+….+99*100*101

#include<stdio.h>
void main()
{
int i,j,k;
long n;
n=0;
for(i=1;i<=99;i=i+2)
for(j=2;j<=100;j=j+2)
for(k=3;i<=101;k=k+2)
{

n+=i*j*k;

}
printf("%ld",n);
}

到底错在哪里啊?求指教

你的循环没有弄懂,按你的式子来说,第三层循环完后才进入第二层循环,第二层循环完后再进入第一层循环,第一层循环完后才退出。展开后为:
第1次循环:n = i*j*k = 1*2*3
第2次循环:n = i*j*k = 1*2*5
第3次循环:n = i*j*k = 1*2*7
……
第50次循环:n = i*j*k = 1*2*101
第51次循环:n = i*j*k = 1*4*3
第52次循环:n = i*j*k = 1*4*5
……追问

那根据我的这个,怎么改比较好?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-29
#include<stdio.h>
void main()
{
    int i,j,k;
    long n;
    n=0;
    for(i=1;i<=99;i=i+2)
     {
         j = i + 1;
         k = i + 2;
         n+=i*j*k;
     }
     printf("%ld",n);
}

第2个回答  2014-04-29
逻辑错误,只有一重循环,不是三重,改成:

for(i=1, j =2, k =3; i<=99; i=i+2, j = j+2, k = k+2)
{
n+=i*j*k;
}
第3个回答  2019-11-10
#include<stdio.h>

main()

{

long i;

long term, sum = 0;

for (i = 1; i <= 101; i = i +2)

{

term = i*(i + 1)*(i + 2);

sum = sum + term;

}

printf("sum=%d", sum);

}
作者亲测,放心可用,for语句,,不用写成那么复杂吧
第4个回答  2014-04-29
for(k=3;i<=101;k=k+2)
{

printf(("%d,%d,%d",i,j,k);//看看你的乘数对不对,应该不是你要的结果
n+=i*j*k;

}
你对循环要加深理解,其它只要一层循环就够了。
相似回答