好多警告,如何修改?
程序代码:/*
输入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 编辑 ]









