如何详细分析一段C语言代码?

本人刚开始学C语言,看到一些题目但是完全不懂该怎么分析。我想知道一段代码该如何去分析比较好,谢谢各位了。

#include <stdio.h>
void main()
{
    int i, j;
    int a[3][3], b[3][3], x;
    for (i=0;i<3;i++)
        for (i = 0; i < 3; i++)
        {
            scanf("%d", &x);//输入1,2,3,4,5,6,7,8,9 回车
            a[i][j] = x;
        }
    for (i = 0; i < 3; i++)
        for (j = 0; j < 3; j++)
            b[j][i] = a[j][i];
    for (i = 0; i < 3; i++)
    {
        printf("\n");
        for (j = 0; j < 3; j++)
            printf("%d", b[i][j]);
    }
}

3个回答

#include <stdio.h> //#预处理,就是插入头文件,你使用的库函数、类型在这头文件能找到
void main() //主函数,我理解为程序的入口
{
    int i, j; //声明i,j整数型变量;
    int a[3][3], b[3][3], x;//声明整型二维数组a,b;并声明整型x变量;
    for (i=0;i<3;i++) //循环二维数组a的行;
        for (i = 0; i < 3; i++)//循环二维数组的列,但在这里你写错了,应该j而不是i;
        {
            scanf("%d", &x);//输入1,2,3,4,5,6,7,8,9 回车 //从键盘读入存入x;
            a[i][j] = x; //对数组各元素赋值
        }
    for (i = 0; i < 3; i++) //同a的大循环
        for (j = 0; j < 3; j++)//同a的小循环
            b[j][i] = a[j][i]; //对数组b赋值,但你这里i,j的下标反了,如果数组的行列不相等就会出现越界的问题。

    //以下是打印b的每个元素值
    for (i = 0; i < 3; i++)
    {
        printf("\n");
        for (j = 0; j < 3; j++)
            printf("%d", b[i][j]);
    }
}
qtchen_1988
qtchen_1988 回复PenguinSAMA: 如果你行列数目一样或者你很清楚i,j的最大值就不影响。就怕惯性思维行列搞混了
9 个月之前 回复
qq_44328299
PenguinSAMA 非常感谢,但是原题的b赋值那里就是J,i会影响什么吗
9 个月之前 回复

从简单的程序开始,一步步慢慢分析,随着你的学习,长的也就不在话下,别急,祝好~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题