/* 时间: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 8 12 9 8 7 0 7 8 9 7 0 12 9 9 9 8 7 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; }
原文:http://blog.csdn.net/z_x_b5/article/details/18888109