1 条题解
-
0
C :
#include<stdio.h> main() { int a[5][5],t,i,j,b[25],n=0; for(i=0;i<5;i++) { for(j=0;j<5;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<5;i++) /*将25个数存放在b数组中*/ { for(j=0;j<5;j++) { b[n++]=a[i][j]; } } for(i=0;i<25;i++) /*将25个数按从小到大排序*/ { for(j=24;j>i;j--) { if(b[j-1]>b[j]) { t=b[j-1]; b[j-1]=b[j]; b[j]=t; } } } for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(a[i][j]==b[0]) { t=a[i][j]; a[i][j]=a[0][0]; a[0][0]=t; } if(a[i][j]==b[1]) { t=a[i][j]; a[i][j]=a[0][4]; a[0][4]=t; } if(a[i][j]==b[2]) { t=a[i][j]; a[i][j]=a[4][0]; a[4][0]=t; } if(a[i][j]==b[3]) { t=a[i][j]; a[i][j]=a[4][4]; a[4][4]=t; } if(a[i][j]==b[24]) { t=a[i][j]; a[i][j]=a[2][2]; a[2][2]=t; } } } for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%d ",a[i][j]); } printf("\n"); } }
C++ :
#include <stdio.h> int main() { void T(int mat[][5], int n); int mat[5][5]; int i, j; for (i = 0;i < 5;i++) for (j = 0;j < 5;j++) scanf("%d", &mat[i][j]); T(mat, 5); for (i = 0;i < 5;i++) { for (j = 0;j < 5;j++) printf("%d ", mat[i][j]); printf("\n"); } return 0; } /* 矩阵处理函数 */ void T(int mat[][5], int n) { int i, j, temp; int *a, *b, *c, *d, *max; /* 设置4个最小元素以及最大元素指针的初始值 */ a = &mat[0][0]; b = &mat[0][0]; c = &mat[0][0]; d = &mat[0][0]; max = &mat[0][0]; for (i = 0;i < 5;i++) { for (j = 0;j < 5;j++) { if (mat[i][j] < *a) { d = c; c = b; b = a; a = &mat[i][j]; } else if (mat[i][j] < *b) { d = c; c = b; b = &mat[i][j]; } else if (mat[i][j] < *c) { d = c; c = &mat[i][j]; } else if (mat[i][j] < *d) { d = &mat[i][j]; } if (mat[i][j] > *max) max = &mat[i][j]; } } /* 依次替换4个最小元素以及最大的元素 */ temp = mat[0][0]; mat[0][0] = *a; *a = temp; temp = mat[0][4]; mat[0][4] = *b; *b = temp; temp = mat[4][0]; mat[4][0] = *c; *c = temp; temp = mat[4][4]; mat[4][4] = *d; *d = temp; temp = mat[2][2]; mat[2][2] = *max; *max = temp; }
- 1
信息
- ID
- 1366
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者