一个是.c文件,一个是.cpp文件,有编译问题正常

总有那身价贱的人给作业贴回复完整的代码
程序代码:void sort(int (*p)[5])
{
int i, j, temp;
int *Max, *Min;
*Max = *(*p); //将行列式第一个地址赋给Max,赋给Min
*Min = *(*p);
for(i = 0; i < 5; i++) //找出最大值地址;
{
for(j = 0; j < 5; j++)
{
if(*Max < *(*(p + i) + j))
{
Max = *(p + i) + j;
}
if(*Min > *(*(p + i) + j)) //找出最小值地址;
{
Min = *(p + i) + j;
}
}
}
temp = *(*(p + 2) + 2); //最大值与中间值交换;
*(*(p + 2) + 2) = *Max;
*Max = temp;
temp = *Min; //最小值与第一行第一列的值交换;
*Min = p[0][0];
p[0][0] = temp;
*Min = *(*(p)+ 1);
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
if((*(*(p + i) + j) != p[0][0]) && (*Min > *(*(p + i) + j))) //判断条件为循环值不等于最小值,且大于*Min;
{
Min = *(p + i) + j; //找出第二小值地址;
}
}
}
temp = *Min; //将第二小值与第一行第五列值交换;
*Min = p[0][4];
p[0][4] = temp;
*Min = *(*(p)+ 2);
for(i = 0; i < 5; i++) //找出第三小值;
{
for(j = 0; j < 5; j++)
{
if((*(*(p + i) + j) != p[0][0]) && (*(*(p + i) + j) != p[0][4]) && (*Min > *(*(p + i) + j)))
{
Min = *(p + i) + j;
}
}
}
temp = *Min; //第三小值与第五行第一列值交换;
*Min = p[4][0];
p[4][0] = temp;
*Min = *(*(p)+ 3);; //找出第四小值地址;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
if((*(*(p + i) + j) != p[0][0]) && (*(*(p + i) + j) != p[0][4]) && (*(*(p + i) + j) != p[4][0]) && (*Min > *(*(p + i) + j)))
{
Min = *(p + i) + j;
}
}
}
temp = *Min; //第四小值与第五行第五列值交换;
*Min = *(*(p + 4) + 4);
*(*(p + 4) + 4) = temp;
for(i = 0; i < 5 ; i++) //打印交换过后的行列式;
{
for(j = 0; j < 5; j++)
{
printf("%4d", *(*(p + i) + j));
}
printf("\n");
}
}