函数中调用数组
程序代码:
float distance(float *p1,float *p2) { float n; n=(*p1-*p2)*(*p1-*p2)+(*(p1+1)-*(p2+1))*(*(p1+1)-*(p2+1)); n=sqrt((float)n); return n; } float min(int (*p)[2],int n) { int i,j; float m=1000,temp; for(i=0;i<=n-2;i++) for(j=i+1;j<=n-1;j++) { temp=distance((p+i),(p+j));//cannot convert `int (*)[2]' to `float*' for argument `1' to `float distance(float*, float*)' if(temp<=m) m=temp; } return(m); } main() { int i,j,n; float r,a[100][2]; scanf("%d",&n); for(i=0;i<=n-1;i++) scanf("%d %d",&a[i][0],&a[i][1]); r=min(a,n)/2;//cannot convert `float (*)[2]' to `int (*)[2]' for argument `1' to `float min(int (*)[2], int)' printf("%d",r); }函数里面调用函数,用了二维数组
错误信息是这两句。。函数调用指针这块一直不是很明白。。 我知道形参是要写地址,但是不知道后面该怎么换到下一个元素。。一维数组还好。。
二维数组就完全不明白了。。。