一个是.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"); } }