我对指针理解的不好。不知这道题错在哪里,恳切求教。
题目是编写一个函数fun,函数功能是将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中,并输出到屏幕。用puts()函数。例如,二维数组中的数据是:
W W W W
S S S S
H H H H
则字符串的内容为WSHWSHWSHWSH。
以下是有错误的程序。
#include <stdio.h>
int m,n;
int main()
{
char fun(char *s[],char *b);
int i,j;
char w[10][10];
char *a=NULL;
printf("enter m,n:");
scanf("%d %d",&m,&n);
printf("The matrix:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%c",&w[i][j]);
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");
return 0;
}
char fun( char *s[], char *b)
{
int i,j,k=0;
for(j=0;j<n;j++)
for(i=0;i<m;i++)
{
b[k]=*(*(s+i)+j);
k++;
}
b[k]= '\0';
}
[ 本帖最后由 firmthinking 于 2012-12-17 23:44 编辑 ]