使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是将M行N列的二维数组中的字符数据,按列的顺序依次存放到一个字符串中。 例如,若二维数组中的数据

admin2023-02-27  0

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是将M行N列的二维数组中的字符数据,按列的顺序依次存放到一个字符串中。
    例如,若二维数组中的数据为

则字符串中的内容应是WSHWSHWSHWSH。
    注意:部分源程序给出如下。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 #define M 3
3 #define N 4
4 voLd fun(char(*s)[N],char*b)
5 {
6
7 }
8 void main()
9 {
10  char a[100],wM][N]={{'W’,’W’,’W’,’W’},{’S’,’S’,’S’,’S’},{’H’,’H’,’H’,’H’}};
11    int i,j;
12    printf("The matrix:\n");
13    for(i=0;i<M;i++)
14    {
15    for(j=0;j<N;j++)
16    printf("%3c",w[j]);
17    printf("\n");
18    }
19    fun(w,a);
20    printf("The string:\n");
21    puts(a);
22    printf("\n\n");
23 }

选项

答案 1 void fun(char(*s)[N],char*b) 2 { 3 int i,j,k=0; 4 for(i=0;i<N;i++) /*按列的顺序依次存放到一个字符串中*/ 5 for(j=0;j<M;j++) 6 b[k++]=s[j][i]; 7 b[k]=’\0'; 8 }

解析 看到程序后,很容易便能想到采用循环嵌套的方法,本题中将字符数据按列的顺序依次存放到一个字符串中,所以列标变化慢,行标变化快。
    注意:第1个循环条件为i<N(列);第2个循环条件为j<M(行),因为在循环的嵌套中越在内层.循环变化就越快。   
转载请注明原文地址:https://kaotiyun.com/show/yJ0D777K
0

相关试题推荐
最新回复(0)