您的位置:首页 > 其它

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上的最优代码,才意识到这个代码不用二次数组,自己是习惯了。。。。    


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: