nyoj题目277:车牌号
2015-05-10 16:39
232 查看
车牌号
时间限制:3000 ms | 内存限制:65535 KB难度:1
描述 茵茵很喜欢研究车牌号码,从车牌号码上可以看出号码注册的早晚,据研究发现,车牌号码是按字典序发放的,现在她收集了很多车牌号码,请你设计程序帮她判断注册较早的号码。车牌号码由5个字母或数字组成
输入第一行是n,代表有n组数据,第二行是m,以下m行是m个车牌号码
其中n<100,m<1000输出输出注册较早的车牌号样例输入
1 4 AA100 aa100 0o2r4 ye2er
样例输出
0o2r4
#include <stdio.h>
#include <string.h>
main ()
{
int n, m, i;
char a[1001][6];
scanf("%d", &n);
while(n--)
{
scanf("%d", &m);
for(i=0;i<m;i++)
{
scanf("%s", a + i);
if (strcmp(a[i],a[0])<0) //比较两个数,比较字符串用strcmp
strcpy (a[0], a[i]);
}
printf("%s\n", a[0]);
}
}
//自己不明白到底怎么算按字典序排序,去百度了,见别人直接用strcmp故考虑为0-9,A-Z,a-z。
//逆向思维:他没有说怎么排序,故应该是ascll码上的排序,故用strcmp。
//自己刚开始定义二维数组定义的太小了,连续两道题都是,总感觉没错的,以后注意定义大一些。
最优程序
#include<stdio.h>
#include<string.h>
main()
{int n;
scanf("%d",&n);
while(n--)
{int m;
char a[6],c[6];
scanf("%d",&m);
getchar();
gets(c);
while(--m)
{gets(a)
;if(strcmp(a,c)<0)
strcpy(c,a);
}
puts(c);}}
看了oj上的最优代码,才意识到这个代码不用二次数组,自己是习惯了。。。。