欢迎光临散文网 会员登陆 & 注册

浙江大学翁恺教你C语言程序设计!C语言基础入门!

2023-07-20 00:16 作者:在寒冬绽放的奇迹樱花  | 我要投稿

个人理解(假设输入的是2):

     先把a的值赋值给i,然后第一个while条件符合所以开始运行,将a的值赋值给j,然后到了第二个while,此时j=a,符合第二个while的条件,所以第二个while开始运行,将a的值赋值给k,然后到了第三个while,此时k=a符合第三个while的条件,所以第三个while运行,但是此时i=j=k=a,所以第三个while里面的三个嵌套的if语句都不会执行,所以第三个while执行完了,因为它是在第二个while的里面,所以程序会继续运行第二个while里剩下的内容,也就是“k++;”,执行完“k++;”之后(此时k=3),第二次运行第三个while,还是不符合三个if语句的条件,所以又跳到了“k++;”(执行完这条语句后k=4),然后第三次运行第三个while,然后又跳到了“k++”(执行完这条语句后k=5),然后是第四次运行第三个while,然后又跳到了“k++”(执行完这条语句后k=6),然后是第五次运行第三个while,因为k=6而a+3=5,所以不再符合第三个while的条件,所以跳过了第三个while,而第三个while是在第二个while里面,所以程序会继续执行第二个while里面的语句,也就是“j++”(执行完这条语句后j=3),然后第二次运行第二个while,又重新把a的值赋值给k,(此时k=2),然后又开始了第三个while的循环(跟刚开始的时候一样,k一直+1直到k=6的时候跳出第三个while),跳出第三个while后,继续执行第二个while的语句,也就是“j++”(执行完这条语句后j=4),然后又把a的值赋值给k(即k=2),又开始新一轮的第三个while的循环(内容跟之前第三个while的一样,一直持续到j=6,j=6之后不再符合第二个while的条件,所以跳出第二个while,因为第二个while是在第一个while里面,所以继续执行第一个while剩下的内容,也就是“i++”(执行完这条语句后i=3),然后又重新开始运行第一个while,(然后继续进行上面的文字描述的内容,只不过i,j,k的值不同了)

     简单来说就是k每次从2到6循环一遍,j就会加1,j加到6之后i就会加1,(就相当于从1数到999一样,从1数到10之后个位从9重新变成0,十位从0变成了1,从11数到20之后个位又从9重新变成0,而十位从1变成了2,一直到90数到100,从90数到100之后个位重新变成0,十位也重新变成0,而百位从0变成了1。

     当然,大家需要自己打一遍代码,然后按老师之前教的那样一条语句一条语句地看,在左边的”调试“窗口点击右键,然后点击”添加查看“,输入变量(如i,j,k,cnt),就能实时查看变量的数值变化啦(注意,有蓝色的那行是将要执行的语句,还没有执行呢,此时点击下一步就是执行这条语句啦),执行的语句数量不少哟,都是i,j,k数值的变化然后输出符合题意的排列,建议理解完程序就结束运行。

    (PS:手打的可能会有错别字QAQ)

浙江大学翁恺教你C语言程序设计!C语言基础入门!的评论 (共 条)

分享到微博请遵守国家法律