二维数组
4.
运行结果为:
852
#include <stdio.h>
int m[3][3]={{1},{2},{3}};
int n[3][3]={1,2 ,3};
main( )
{
printf(“%d,”, m[1][0]+n[0][0]);
printf(“%d\n”,m[0][1]+n[1][0]);
}
运行结果为:
3,0
首先定义整型二维数组m,m为3行,3列的二维矩阵,并对其以行的形式初始化
m[0][0]=1 m[0][1]=0 m[1][2]=0
m[1][0]=2 m[1][1]=0 m[2][2]=0
m[2][0]=3 m[2][1]=0 m[2][2]=0
定义整型二维数组n,m为3行,3列的二维矩阵
n[0][0]=1 n[0][1]=2 n[1][2]=3
n[1][0]=0 n[1][1]=0 n[2][2]=0
n[2][0]=0 n[2][1]=0 n[2][2]=0
因此 m[1][0]+n[0][0]=2+1=3
m[0][1]+n[1][0]=0+0=0
5.
#include <stdio.h>
main()
{
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=1; i<3; i++)
printf("%d ",x[i][3-i]);
}
运行结果为:
6 8
首先按存储顺序为数组x初始化
x[0][0]=1 x[0][1]=2 x[0][2]=3
x[1][0]=4 x[1][1]=5 x[1][2]=6
x[2][0]=7 x[2][1]=8 x[2][2]=9
初值i=1, 使得循环条件i<3成立,执行循环体
第1次循环
执行printf("%d ",x[i][3-i]),打印出x[i][3-i],即x[1][2]的值
计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体
第2次循环
执行printf("%d ",x[i][3-i]),打印出x[i][3-i],即x[2][1]的值
计算表达式3,即i++,i为3,使得循环条件i<3成立,结束循环
6.
#include <stdio.h>
main( )
{
int n[3][3], i, j;
for(i=0;i<3;i++ )
{
for(j=0;j<3;j++ )
{
n[i][j]=i+j;
printf(“%d ”, n[i][j]);
}
}
}
运行结果为:
0 1 2
1 2 3
2 3 4
循环变量i为0, 循环条件 i<3成立,执行循环体
外层for第1次循环 相当于输出第1行
内层for循环j初值为0,循环条件j<3成立,执行循环体
内层for第1次循环
执行n[i][j]=i+j;即n[0][0]=0+0=0;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体
内层for第2次循环
执行n[i][j]=i+j;即n[0][1]=0+1=1;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体
内层for第3次循环
执行n[i][j]=i+j;即n[0][2]=0+2=2;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环
执行printf(“\n”);
执行外层for语句的表达式3,i++,i为,1, i<3成立,继续执行外层循环体
外层for第2次循环 相当于输出第2行
内层for循环j初值为0,循环条件j<3成立,执行循环体
内层for第1次循环
执行n[i][j]=i+j;即n[1][0]=1+0=1;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体
内层for第2次循环
执行n[i][j]=i+j;即n[1][1]=1+1=2;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体
内层for第3次循环
执行n[i][j]=i+j;即n[1][2]=1+2=3;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环
执行printf(“\n”);
执行外层for语句的表达式3,i++,i为,1, i<3成立,继续执行外层循环体
外层for第2次循环 相当于输出第3行
内层for循环j初值为0,循环条件j<3成立,执行循环体
内层for第1次循环
执行n[i][j]=i+j;即n[2][0]=2+0=1;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体
内层for第2次循环
执行n[i][j]=i+j;即n[2][1]=2+1=2;
执行printf(“%d ”, n[i][j]);
执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体
内层for第3次循环
执行n[i][j]=i+j;即n[2][2]=2+2=3;
执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环
执行printf(“\n”);
执行外层for语句的表达式3,i++,i为,3, i<3不成立,结束外层循环