好多警告,如何修改?
程序代码:
/* 输入4×4的数组,编写程序实现: 找出对角线上其值最大的元素和它在数组中的位置。 */ #include "stdio.h" #define N 4 void main() { int FindMax(int *p, int m, int n, int *pRow, int *pCol, int *pmax); int array[N][N], col[16], row[16]; int i, j, k, max; for(i=0; i < N; i++) for(j=0; j < N; j++) scanf("%d", &array[i][j]); k = FindMax(*array,N,N,row,col,&max); printf("Find %d max,max=%d\n", k, max); for(i=0; i < k; i++) { printf("row=%d\tcol=%d\n",row[i]+1, col[i]+1); } } int FindMax(int *c, int n, int m, int *arr[], int *brr[], int *pmax) { int i, j, k=0; *pmax=-999; for(i=0; i < N; i++) for(j=0; j < N; j++) { if((c[i*n+j] > *pmax) && ((i==j) || (i+j==3)))//判断是否为对角线 { *pmax=c[i*n+j]; k=0; arr[k]=i;//如果改成*arr[k]=i;则运行错误,我想问问什么会怎样? brr[k]=j;//如果改成*brr[k]=j;则运行错误,我想问为什么会这样? } if(c[i*n+j] == *pmax) { arr[k]=i;//如果改成*arr[k]=i;则运行错误,我想问问什么会怎样? brr[k++]=j;//如果改成*brr[k]=j;则运行错误,我想问为什么会这样? } } return k?k:1; } //还有这程序有很多警告,什么原因?如何修改?
[ 本帖最后由 chen1204019 于 2012-12-15 20:09 编辑 ]