1.题目要求
2.答案:第四行到第八行为填写内容。
#include <stdio.h>
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i<N;i++) /* 请填写相应语句完成其功能 */
{
for(j=0;j<M;j++)/*第四行*/
{
b[n]=s[j][i];
n++;
} /*第八行*/
}
b[n]='\0';
}
main()
{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};
int i,j;
printf("The matrix:\n");
for(i=0; i<M; i++)
{ for(j=0;j<N; j++)printf("%3c",w[i][j]);
printf("\n");
}
fun(w,a);
printf("The A string:\n");puts(a);
printf("\n\n");
getchar();
}
3.注意:按列展开存储元素,并且保持原始的循环条件 for(i=0; i<N; i++)的情况下
,需要在内部循环中交换 i
和 j
的位置。这样才可以确保按列展开存储元素到一维数组中。