Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

ZJGSU OJ 2264 矩阵转换(指针题)

忘记放进函数里面了。。。
只用了指针,可以发现我这种方法用指针可以少定义一个变量,而且交换时更省时间,希望大家可以多多用指针,用熟练了对以后很有帮助(主观观点)
可以尝试封进函数,这样main函数可以看起来更简洁。
这也是一个好习惯。

题目描述
将一个5X5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下一次从小到大存放),写个一函数来实现,用main函数调用。(要求用指针来做)
输入
每组数据为5X5的矩阵,矩阵的数字为整数。有多组测试数据,直到输入文件结束。
输出
输出按题目要求改变后的矩阵,每组结果后空一行。
样例输入
35 34 33 32 31
30 29 28 27 26
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11
样例输出
11 34 33 32 12
30 29 28 27 26
25 24 35 22 21
20 19 18 17 16
13 23 15 31 14

#include<stdio.h>        //2246
#include<stdlib.h>
int main(){
    int compare(int a, int b);
    void change(int *a, int *b);
    int num[25],*max,*min,i,j,n,temp,decrease,*tmp;
    while(scanf("%d", &num[0])!=EOF){
        max=&num[0];min=&num[0];
        for(i=1; i<25; i++) {
            scanf("%d",&num[i]);
            if (compare(*max,num[i])<0) max=&num[i];
            if (compare(*min,num[i])>0) min=&num[i];
        }
        if(min==&num[12]) min=max;
        if(max!=&num[12]) change(max,&num[12]);
        change(min,&num[0]);
        min=&num[0];
        for ( i = 1; i < 4; i++){
            decrease=num[12]-num[0];
            for ( j = 0; j < 25; j++)
                if (compare(num[j],*min)>0 && decrease>compare(num[j],*min)){ 
                    decrease=compare(num[j],*min);
                    tmp=&num[j];
                }
            if(i==1){
                change(tmp,&num[4]);
                min=&num[4];
            }else if (i==2){
                change(tmp,&num[20]);
                min=&num[20];
            }else if (i==3){
                change(tmp,&num[24]);
                min=&num[24];
            }
        }
        for ( i = 0; i < 25; i++){
            printf("%d ",num[i]);
            if ((i+1)%5==0) printf("\n");
        }
        printf("\n");
    }
    return 0;
}
int compare(int a, int b) {
    return a-b;
}
void change(int *a, int *b) {
    int tmp;
    tmp=*a;*a=*b;*b=tmp;
}

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: ZJGSU OJ 1997 子串复制(函数+字符串+指针)[中]

下一篇: 智稳双全--AnalyticDB如何助力菜鸟运配双十一

精华推荐