题目1200:最大的两个数

来源:互联网 发布:考第一名的秘诀知乎 编辑:程序博客网 时间:2024/06/05 18:34

点击打开链接

/*时间:2014.1.31目的:题目1200:最大的两个数 http://ac.jobdu.com/problem.php?pid=1200*/#include <stdio.h>void fun(int *a,int b)//核心代码 {int f1=0;if(a[0] > a[1])f1 = 1;//判断f1==1表示a[0]>a[1] else if(a[0] < a[1])f1 = 2;//判断f1==2表示a[0]<a[1] switch(f1)//判断f1==0表示a[0]==a[1] {case 0:(b>a[0])&&(a[1]=b);//当相等时,只需判断是否大于a[0],若大于只需改变a[1]即可 break;        case 1:(b>a[1])&&(a[1]=b);//若a[0]>a[1]时, 无论是b否大于a[0],只需把a[1]改变即可                 break;        case 2:(b>a[0])&&(a[0]=a[1])&&(a[1]=b);//同case 1                 break;}}int main(){int n, i, a, b, c, d, e, t0[2], t1[2], t2[2], t3[2], t4[2];for(scanf("%d", &n);n--;){t0[0]=t0[1]=t1[0] =t1[1]=t2[0] =t2[1]=t3[0] =t3[1]=t4[0]=t4[1]=-2000000000;for(i = 0;i < 2;i++)scanf("%d %d %d %d %d",&t0[i],&t1[i],&t2[i],&t3[i],&t4[i]);for(i = 0;i < 2;i++){scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);fun(t0,a);fun(t1,b);fun(t2,c);fun(t3,d);fun(t4,e);}for(i = 0;i < 2;i++)printf("%d %d %d %d %d \n",t0[i],t1[i],t2[i],t3[i],t4[i]);}return 0;} /*------------------1思路:1.主要是在换tx[i](x=0,1,2,3,4;i=0,1)时,需要考虑保留原矩阵的行列顺序即可 1  2   4  9  8-1  4  9  8  812  9  8  7  07   8  9  7  012 9 9 9 87 8 9 8 8------------------*/ 
#include <stdio.h>void fun(int *a,int b){    if(a[0] > a[1])      (b>a[1])&&(a[1]=b);     else if(a[0] < a[1])(b>a[0])&&(a[0]=a[1])&&(a[1]=b);else (b>a[0])&&(a[1]=b);}int main(){    int n, i, a, b, c, d, e, t0[2], t1[2], t2[2], t3[2], t4[2];    for(scanf("%d", &n);n--;)    {        t0[0]=t0[1]=t1[0] =t1[1]=t2[0] =t2[1]=t3[0] =t3[1]=t4[0]=t4[1]=-2000000000;        for(i = 0;i < 2;i++)        scanf("%d %d %d %d %d",&t0[i],&t1[i],&t2[i],&t3[i],&t4[i]);        for(i = 0;i < 2;i++)        {            scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);            fun(t0,a);            fun(t1,b);            fun(t2,c);            fun(t3,d);            fun(t4,e);        }        for(i = 0;i < 2;i++)        printf("%d %d %d %d %d \n",t0[i],t1[i],t2[i],t3[i],t4[i]);    }    return 0;} 




0 0