c语言 自写

发布时间:2024-05-15 18:59 发布:上海旅游网

问题描述:

main()
{int i=0,j=0,p=1,s=0;
for(;i<=5;)
{for(;j<=i;)
{p*=i;s+=j;
j++;}
i++;}
printf("%d\n",s);
}
这个程序是干嘛的??

问题解答:

先简化一下程序

main()
{
int i,j;
int s=0;
for(i=0;i<=5;i++)
for(j=0;j<=i;j++)
{ p*=i;s+=j;}
printf("%d\n",s);
}

其实P好像没什么用

for(i=0;i<=5;i++) //外循环
for(j=0;j<=i;j++) //内循环
{ p*=i;s+=j; }
外循环是做6次
for(j=0;j<=i;j++)
{ p*=i;s+=j; }
j p
i=0 0 0
i=1 0 1 0
i=2 0 1 2 0
i=3 0 1 2 3 0
i=4 0 1 2 3 4 0
i=5 0 1 2 3 4 5 0
s实际上是把J的这些值相加即0+(0+1)+(0+1+2)+(0+1+2+3)+(0+1+2+3+4)+(0+1+2+3+4+5)的值输出
至于p 的值则一直是0

不知道LL是什么水平,说的罗嗦了点,不好意思哈

输出S的值。要是
for(;i<=5;)
{for(;j<=i;)
{p*=i;s+=j;
j++;}
i++;}
得到 的。

怎么看这个程序应该是写错的程序。而且p根本没用。

可以把程序以另一种格式写,较为清晰
main()
{
int i,j=0,s=0;
for(i=0;i<=5;i++)
for(;j<=i;j++)
s+=j;

printf("%d\n",s);
}
计算0+1+2+3+4+5的值

计算0+1+2+…+5 且把值存入s中!
程序改写如下:
void main()
{int i=0,j=0,p=1,s=0;
while(i<=5)
{
while(j<=i) //该循环每次只执行一次!!!
{
p = p*i; //第一次运行时,p为0且之后一直为0——因为是乘
s = s+j; //两层循环都运行完毕时 s = 0+1+2…+5
j++;
}
i++;
}
printf("%d\n",s);
}

main()
{int i=0,j=0,p=1,s=0;
for(;i<=5;i++) s+=i;
printf("%d\n",s);
}
这样就清楚了

热点新闻