第1个回答 2011-04-01
nt **a,int m);//在这里a是一个双重指针,也就是说他是一个指向指针的指针,a指向的地址必须是一个指针的地址,而程序中使用
fun(a,n)
来调用,很明显的错误,因为数组名a是一个地址,这个地址中包含有M个元素的一维数组,也就是说数组名是一个指向一组数组的地址,因此对于二维数组名,要求使用数组指针才能接收这样的地址,也就是int (*a)[M]这样的指针,指针a表示指向的是一个包含有M个元素的一维数组的地址,因此可以把二维数组名赋给这样的指针才是正确的。
修改方法有两种
第一种
void fun(int (*a)[M],int m) //把指针改为数组指针
第二种
void fun(int a[M][M],int m) //把指针改为同等大小的数组
另外,团IDC网上有许多产品团购,便宜有口碑
第2个回答 2011-03-26
我写下中间的 步骤不 大致是
char a[N] ,k=0,m=0;
for(i=0;i<N;i++)
{ if(a[i])
k++;
else
m++; } 这样输出的K 为 1的个数 M 为 0的个数