鱼C论坛

 找回密码
 立即注册
查看: 1196|回复: 3

[已解决]字符数组输出

[复制链接]
发表于 2020-6-5 14:34:27 | 显示全部楼层 |阅读模式
10鱼币
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char s[2][2] = {{'a','b'},{'c','d'}};
  5.     for(int i = 0;i < 2;i++)
  6.     {
  7.         for(int j = 0;j < 2;j++)
  8.         {
  9.             printf("%c",s[i][j]);
  10.         }
  11.         printf("\n");
  12.     }
  13.     return 0;
  14. }
复制代码


感觉有点绕,理不清逻辑,求大神帮助。
最佳答案
2020-6-5 14:34:28
〃忝書γě渎ぐ 发表于 2020-6-5 15:02
放到数据里,总觉得有点绕,能详细说一下吗?

有什么好绕的。程序是一行一行往下执行的。第一层循环也得按次数来,它里面有循环,得等第二层循环结束后才能继续它的循环。这循环的意思是先打印s[0][0],再打印s[0][1].然后应该打印s[0][2]了。但是j=2不符合j<2的条件,所以不会执行里面的打印s[0][2],而是结束,然后继续,此刻只是执行了第一层循环的第一次,也就是i=0的时候,它还没完,因为只执行了j循环,下面还有个语名,就是打印换行符。换行之后,才会执行i++,然后继续判断i是否小于2,如果是,就继续进去了。进去的第一件事又是一个j循环。将j先=0,判断,此刻打印的是s[1][0],s[1][1],然后j又等于2了,又不符合,然后又是换行,然后i++。

最佳答案

查看完整内容

有什么好绕的。程序是一行一行往下执行的。第一层循环也得按次数来,它里面有循环,得等第二层循环结束后才能继续它的循环。这循环的意思是先打印s[0][0],再打印s[0][1].然后应该打印s[0][2]了。但是j=2不符合j
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 14:34:28 | 显示全部楼层    本楼为最佳答案   
〃忝書γě渎ぐ 发表于 2020-6-5 15:02
放到数据里,总觉得有点绕,能详细说一下吗?

有什么好绕的。程序是一行一行往下执行的。第一层循环也得按次数来,它里面有循环,得等第二层循环结束后才能继续它的循环。这循环的意思是先打印s[0][0],再打印s[0][1].然后应该打印s[0][2]了。但是j=2不符合j<2的条件,所以不会执行里面的打印s[0][2],而是结束,然后继续,此刻只是执行了第一层循环的第一次,也就是i=0的时候,它还没完,因为只执行了j循环,下面还有个语名,就是打印换行符。换行之后,才会执行i++,然后继续判断i是否小于2,如果是,就继续进去了。进去的第一件事又是一个j循环。将j先=0,判断,此刻打印的是s[1][0],s[1][1],然后j又等于2了,又不符合,然后又是换行,然后i++。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 14:49:41 | 显示全部楼层
首先你要明白循环的方法。该循环是当i=0时,执行一遍j循环,然后i自增,继续执行另一遍j循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-5 15:02:34 | 显示全部楼层
405794672 发表于 2020-6-5 14:49
首先你要明白循环的方法。该循环是当i=0时,执行一遍j循环,然后i自增,继续执行另一遍j循环。

放到数据里,总觉得有点绕,能详细说一下吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 01:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表