来知道电脑站

您的位置: 主页>编程> 请详细解释下这段C语言

请详细解释下这段C语言

 hoo5600116 

请详细解释下这段C语言


main()
{
int k,j,s;
for(k=2;k<6;k ,k )
{
s=1;
for(j=k;j<6;j )
s =j;
}
printf("%d\n",s);
}

解决方法



main()
{
int k,j,s; //定义三个变量,类型为int 整型变量

for(k=2;k<6;k ,k )
//开始一个循环,起始条件为k = 2, 循环的测试条件是 k< 6 时,进行循环( 也就是说当 K >= 6时结束循环)。每一次循环后,k 自增 两次 k , k 就等同于 k= k 2

{ //k 的循环体开始
s = 1;
for( j=k;j<6;j )
//开始一个循环。起始条件为 j=k,测试条件为 j<6, 自增为 j
s = j; //由于循环体只有一句,所有不用花括符号。

} //k 的循环体结束
printf("%d\n",s); //以整型值输出s的值。
}

这段代码,是在计算 s,其实外层循环 k 完全没有用。不管外层 k 怎么循环,s 都会被赋值为1。然后再进入内存循环 j 。

这里提示一下:
由于for 循环在循环时,先将进行测试条件比效,看测试条件是否符合,为真才进行循环。循环之后,再执行自增语句。也就是说,对于
for(k=2;k<6;k ,k ) 是先进行k=2 初始赋值(仅一次),开始循环检查,K <6 吗?是的话,进入循环,执行循环体内的语句,然后,再执行 k , k 。


也就是说以下代码:

for(k=2;k<6;k ,k )
{ s=1;
for(j=k;j<6;j )
s =1;
}

可以理解为:
当外层结束循环时之前,k=4( 注意:当这次循环结束后,K会自增2,然后下一次循环时,K=6,将不符合条件,将会退出循环,所以进行s 计算时,最后一次有效的计算是:

s = 1
for( j=4;j<6;j )
s =j;

j 的可以取值为 : 4, 5(j=6时,已经不符合测试条件j<6,已退出循环)
s = 1(s=1) 4 = 5
s = 5(s=5) 5= 10

最终结果, s =10;

上一篇:vb 的问题    下一篇:求JAVA程序源码!!!!!!!!!!!!!

编程相关文章

编程热门文章

编程推荐文章