鱼C论坛

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

[已解决]字符数组输出

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

int main()
{
    char s[2][2] = {{'a','b'},{'c','d'}};
    for(int i = 0;i < 2;i++)
    {
        for(int j = 0;j < 2;j++)
        {
            printf("%c",s[i][j]);
        }
        printf("\n");
    }
    return 0; 
}

感觉有点绕,理不清逻辑,求大神帮助。
最佳答案
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
想知道小甲鱼最近在做啥?请访问 -> 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++。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 14:49:41 | 显示全部楼层
首先你要明白循环的方法。该循环是当i=0时,执行一遍j循环,然后i自增,继续执行另一遍j循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

放到数据里,总觉得有点绕,能详细说一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 16:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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