3329: 镜像文字 题目描述
天气太冷,学校却还不放寒假,外面冷得像冰库,真郁闷!Zero实在无聊,冻得哪儿都去不了,只能玩玩字符游戏,他想把ab变成aba,把123变成12321,你来帮帮他的忙吧。 输入
输入若干行。每行一个字符串,最长为200位。 输出
输出镜像文字,如输入124,则输出12421。具体看样例。 样例输入 111123zero 样例输出
1111112321zerorez #include
char s[1000],*p; int i,n; for(;;) {
p=gets(s);
if(p==NULL || s[0]=='\\n')break; n=strlen(s);
for(i=0;i s[n+i]=s[n-2-i]; } s[n+i]='\\0'; printf(\ } return 0; } 3218: 聪明的监考员 时间限制: 1 Sec 内存限制: 128 MB 提交: 6 解决: 1 [提交][状态][讨论版] 题目描述 期末考试的那天,有些不爱学习的同学早早的来到教室安排自己的位置,以便考试能蒙混过关,一个监考员知道了这个事,在监考前几分钟,让所有同学按照她的规则调换了位置,教室里刚好有n*n个同学,n行n列。 调换规则如下三步: 在调换位置之前,给每行每列编号:从上往下依次编号1到n行,从左到右依次编号1到n列。 例如:n=4 行列编号 1 2 3 4 1 1 3 4 6 2 2 7 9 11 3 16 14 5 8 4 10 15 13 12 第一步:偶数行的同学不动。假设行号为奇数有x行,将它们从上到下依次编号为1到x,那么在这x个奇数行中,将第1行与第x行交换,第2行与第x-1行交换,…. 第二步:奇数列的同学不动。假设列号为偶数有y列,将它们从左到右依次编号为1到y,那么在这y个偶数列中,将第1列与第y列交换,第2列与第y-1列交换,…. 第三步:将这个n*n的方阵围绕中心顺时针旋转90度; 给你初始的座次表,你能输出最后的座次表吗? 输入 输出 样例输入 5 1 3 4 6 17 2 7 9 11 18 16 14 5 8 19 10 15 13 12 20 21 22 23 24 25 样例输出 1 10 16 2 21 6 12 8 11 24 4 13 5 9 23 3 15 14 7 22 17 20 19 18 25 #include int main() { int T,i,j; scanf(\ int a[T][T]; for(i=0;i for(j=0;j scanf(\ if(T%2==1) { for(i=0;i for(j=0;j int t; t=a[i][j]; a[i][j]=a[T-i-1][j]; a[T-i-1][j]=t; } } } else { for(i=0;i for(j=0;j int t; t=a[i][j]; a[i][j]=a[T-i-2][j]; a[T-2-1][j]=t; } } } if(T%2==1) { for(j=1;j for(i=0;i int t; t=a[i][j]; a[i][j]=a[i][T-j-1]; a[i][T-j-1]=t; } } } else { for(j=1;j for(i=0;i int t; t=a[i][j]; a[i][j]=a[i][T-j]; a[i][T-j]=t; } } } int b[T][T]; for(i=0;i for(j=0;j b[j][T-i-1]=a[i][j]; } for(i=0;i printf(\ for(j=1;j printf(\ printf(\ } return 0; } 问题 E: 精挑细选的钢管 时间限制: 1 Sec 内存限制: 128 MB 提交: 571 解决: 170 [提交][状态][讨论版] 题目描述 小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下: 1.这根钢管一定要是仓库中最长的; 2.这根钢管一定要是最长的钢管中最细的; 3.这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。 相关的资料倒是有,可是,手工从几百份钢管材料中选出符合要求的那根……要不,还是请你编写个程序来帮他解决这个问题吧。 输入 第一行一个整数T(0 之后有T行,每行三个整数,分别表示一根钢管的长度(以毫米为单位)、直径(以毫米为单位)和编码(一个9位整数)。 输出 一个9位整数,表示选出的那根钢管的编码。 样例输入 5 3000 50 872198442 3000 45 752498124 2000 60 765128742 3000 45 652278122 2000 50 781234556 样例输出 752498124 #include int main() { struct f { int a; int b; int c; }x[100],t,y[100],z[100]; int i,T,n=0,m=0; scanf(\ for(i=0;i scanf(\ t=x[0]; for(i=1;i if(x[i].a>t.a)t=x[i]; for(i=0;i if(x[i].a==t.a) y[n++]=x[i]; t=y[0]; for(i=1;i if(y[i].b for(i=0;i if(y[i].b==t.b)z[m++]=y[i]; t=z[0]; for(i=1;i if(x[i].c>t.c)t=x[i]; printf(\ return 0; } 问题 B: 【绝对值排序】 时间限制: 1 Sec 内存限制: 128 MB 提交: 68 解决: 28 [提交][状态][讨论版] 题目描述 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 输入 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 输出 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行 样例输入 3 3 -4 2 4 0 1 2 -3 0 样例输出 -4 3 2 -3 2 1 0 #include int n,i,a[100],j,x; while(1) { scanf(\ if(n==0) break; for(i=0;i scanf(\a[i]); } for(i=0;i for(j=i+1;j { if(fabs(a[i]) { x=a[i]; a[i]=a[j]; a[j]=x; } } }printf(\ for(i=1;i printf(\%d\); } printf(\ } return 0; } 问题 G: 公交车之谜 时间限制: 1 Sec 内存限制: 128 MB 提交: 1533 解决: 286 [提交][状态][讨论版] 题目描述 听说青岛八大关公园有英语口语角,还有很多外国人呢。为了和老外对上几句,这周六早晨小胖拉上同伴早早 的就坐上了72路公交从学校向紫荆山进发。一路上没事干,小胖开始思考一个问题。 从学校到青岛八大关公园共有 n(1<=n<=20)站路,小胖刚上车时车上有m个人,每到一站都有pi个人上车,qi个人下车,问这一路上公车上最多有多少人。(0<=m, pi ,qi <=50). 输入 输入有多组样例,每组样例第一行两个数n m,接下来n行每行两个数pi和qi。 输出 每组实例输出这一路上(包含上车站点和下车站点)公交车上最多的人数。每组实例输出占一行。 样例输入 2 3 5 2 3 5 样例输出 6 #include int main() { int n,m,p,q,i,max,k; k=scanf(\ while(k!=EOF) { max=m; for(i=0;i scanf(\ m=m+p-q; if(m>max)max=m; } printf(\ k=scanf(\ } return 0; } 问题 A: susan的货币兑换 时间限制: 1 Sec 内存限制: 128 MB 提交: 735 解决: 228 [提交][状态][讨论版] 题目描述 Susan到中国石油大学来上学,她不太熟悉人民币,因此分别将1角,2角,5角,1元,2元,5元,10元,20元,50元,100元的人民币依次排序号(从1开始排序号),她每天将自己手中不同面值人民币的张数输入iPAD,以计算手头的人民币数额。请你帮她编写一个程序,可以根据她手中的不同面值人民币的张数,计算出对应的人民币数额。 输入 输入人民币序号及张数。每种面值占据一行。如5 20表示序号为5的人民币有20张。当输入序号或张数为负数时结束。 输出 输出对应的人民币数值。保留2位小数。 样例输入 5 20