1 条题解

  • 0
    @ 2025-4-7 21:28:48

    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
    上传者