若有以下程序
#include<stdio.h>
main()
{charw[20]="dogs",a[5][10]={"abcdef","ghijkl","mnopq","rstuv","wxyz."};
inti,j,k;
for(i=0;w[i];i++)
{for(j=0;j<5;j++)
{for(k=0;a[j][k];k++)
if(w[i]==a[j][k])break;
if(w[i]==a[j][k])break;}
printf("%d,%d,",j,k);}}
则程序的输出结果是(0,3,2,2,1,0,3,1,)。
这个程序又怎么看啊?
输出结果代表 dogs每个字符在 数组a[5][10] 第一次出现的位置.
比如d 第一次出现的位置在 a[0][3].
程序运行的时候会从main函数开始执行......
第一个循环从d到o到g到s到结束,当第二个循环是二维字符数组的行,第三个循环是二维字符数组的列。我们不难发现二维数组的(第0行,第3列)、(第2行、第2列)、(第1行,第0列)、(第3行,第1列)依次与d、o、g、s满足w[i]==a[j][k]。(我也是初学者,希望大佬批评指正)