nyoj题目277:车牌号

来源:互联网 发布:最优化问题求解 编辑:程序博客网 时间:2024/06/08 05:01

车牌号

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述
茵茵很喜欢研究车牌号码,从车牌号码上可以看出号码注册的早晚,据研究发现,车牌号码是按字典序发放的,现在她收集了很多车牌号码,请你设计程序帮她判断注册较早的号码。车牌号码由5个字母或数字组成
输入
第一行是n,代表有n组数据,第二行是m,以下m行是m个车牌号码
其中n<100,m<1000
输出
输出注册较早的车牌号
样例输入
14AA100aa1000o2r4ye2er
样例输出
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上的最优代码,才意识到这个代码不用二次数组,自己是习惯了。。。。    


0 0
原创粉丝点击