请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: 则字符串中的内容应是:WsHWSHwSH。 注意:部分源程序在文件PROGl.C中。 请勿改动主

admin2013-04-02  23

问题 请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
    例如,二维数组中的数据为:
    则字符串中的内容应是:WsHWSHwSH。
    注意:部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i {
}
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;void NONO ();
   printf("The matrix:\n");
   for(i=0; i   {for(j=0;j[j]);
      printf("\n");
   }
   fun(w,a);
   printf("The A string:\n");puts(a);
   printf("\n\n");
   NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ; int i,j,k ;
  char a[100],w[M][N], b ;
  rf = fopen("in.dat","r");
  wf = fopen("out.dat","w");
  for(k = 0 ; k < 10 ; k++) {
    for(i = 0 ; i < M ; i++) {
      for(j = 0 ; j < N ; j++) fscanf(rf, "%c", &w[j]);
      fscanf(rf, "%c", &b);
    }
    fun(w, a);
    fprintf(wf, "%s\n", a);
  }
  fclose(rf); fclose(wf);
}

选项

答案{ for(j=0; j
解析 (1)利用两重循环,依次取矩阵中的元素。
(2)其中注意指针数组与数组指针的区别,其中数组指针b,它指向包含4个元素的一维数组。
(3)最后,在一维数组字符处理完毕后,一定要使其尾元素赋值为串结束符’\0’。
转载请注明原文地址:https://kaotiyun.com/show/4DJp777K
0

最新回复(0)