FFIVE
问题主要是二维数组的创建问题函数可改为下面的函数,加的语句我注释了,动态分配内存。其次是释放内存的函数最好也改一下,这我不太清楚,我写的贴在下面了。最后,main()函数最好加上return 0;不然会有警告。(个人看法)#include<iostream>#include <cstdlib>#include<ctime>#include<cstring>using namespace std;void create( char **&ap, int n ){ srand(time(0)); // 可简化ap = new char*[n]; // 此语句不可少int a;int i,j;a=rand()%2; for(i=0;i<n;i++) {ap[i] = new char[n];for(j=0;j<n;j++) {if (a==0)ap[i][j]='#';elseap[i][j]='.';}}} void output(char**&ap,int n ){ int i,j;for(i=0;i<n;i++){ for(j=0;j<n;j++)cout<<ap[i][j]<<" "; cout<<endl; }}void freeArr(char**&ap,int n){ for( int i = 0; i < n; i++ )delete [] ap[ i ];delete [] ap;}int main(){char **ap = NULL;int n;cout << "输入矩阵的阶:";cin >> n;create( ap, n );cout << "\n形成矩阵:\n";output( ap, n );freeArr(ap, n); return 0;}