请编写函数fun,该函数的功能是,将M行N列的二维数组中的字符数据,按列顺序依次放到一个字符串中。

如题所述

例如,二维数组中的数据为:
W W W W
S S S S
H H H H
字符串中的内容应是:WSHWSHWSHWSH。
#include <stdio.h>
#define M 3
#define N 4
void fun(char (*s)[N], char *b)
{
int i,j,k=0;
for(j = 0 ; j< N ; j++)
for(i = 0 ; i < M ; i++)
b[k++]=s[i][j];
b[k]='\0';}

NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int i,j,k ;
char a[100],w[M][N], b ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(k = 0 ; k < 10 ; k++) {
for(i = 0 ; i < M ; i++) {
for(j = 0 ; j < N ; j++) fscanf(rf, "%c", &w[i][j]) ;
fscanf(rf, "%c", &b) ;
}
fun(w, a) ;
fprintf(wf, "%s\n", a) ;
}
fclose(rf) ; fclose(wf) ;
}

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");
NONO();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-05
VC CString fun(char* pChar,int iM,int iN){CString strRet="";CString strTemp="";for(int iStartN=0;iStartN<iN;iStartN++){for(int iStartM=0;iStartM<iM;iStartM++){strTemp="";strTemp.Format("%c",pChar[iStartM][iStartN]);strRet=strRet+strTemp;}}return strRet;} //简单写了下 具体的你测试下看看
相似回答