初学C语言,一个关于三重循环的问题。
程序如下:#include <stdio.h>
void main()
{
int n,m,k,s,p;
for (n=0;n<=2;n++)
for (m=0;m<=9;m++)
for (k=2;k<=9;k++)
{
s=n*100+m*10+k;
p=k*100+m*10+n;
if (s*2<p&&s*3>p)
{
printf("%d ",p);
}
}
}
本人是这样分析程序循环流程的。大家帮我看看我分析的是否正确:
1:先做 n=0 n<=2
2:在做 m=0 m<=9
3:在做 k=2 k<=9
4:在做 s=n*100+m*10+k
p=k*100+m*10+n
5:在做 if (s*2<P&&s*3>p)
6:如果条件成立 → printf........
7:如果条件不成立 → 那么接着做 k++
8:然后返回4在依次往下做。
9:当做到条件k<=9这个条件不成立的时候系统接着做m++
10:然后返回3在依次往下做。
11:当做到k<=9且m<=9条件都不成立的时候系统接着做n++
12:然后返回2在依次往下做。
13:当做到k<=9,m<=9,n<=2条件都不成立的时候,程序跳出此三重循环。
各路大侠给指点下,个人感觉嵌套循环这个环节很重要,所以想弄透它。