回 帖 发 新 帖 刷新版面

主题:有个"文件名排序"的题目请高手指教!!!!

文件名排序
问题描述:
    一个文件的文件名是形如 “基本文件名” 或 “基本文件名.扩展文件名” ,其中,基本文件名是长度介于1到8(包括1或8)的大小写英文字母或数字的字符串,扩展文件名是长度介于1到3(包括1或3)的大小写英文字母或数字的字符串。例如:abc.cpp , noname,123.456等都是合法的文件名。另外,文件名是区分英文字母的大小写的,也就是说,A.Cpp与a.cPP是两个不同的文件。给定N个不同的文件名,请按以下的规则把文件名排序,最终输出各个文件名排序后的序号(从1算起)。
⑴没有扩展文件名的文件名都排在有扩展文件名的文件名后面
⑵若两个文件名都有扩展文件名而且它们的扩展文件名不同,则按扩展文件名的字典序排序
⑶若两个文件名都有扩展文件名而且它们的扩展文件名相同,则按基本文件名的字典序排序
⑷若两个文件名都没有扩展文件名,则按基本文件名的字典序排序
注意:单个字母的字典序是ASCII码小的在前。
输入格式:
第一行输入整数 N ( 1 <= N <= 100 ),
从第二行起输入N个文件名。
输出格式:
输出一行整数,代表相应的文件名排序后的序号(从1算起)。
输入样例:
5
b.txt
a.txt
c1.doc
d
Ay
输出样例:
3    2  1  5  4
(说明:即排序后的文件名是:c1.doc , a.txt , b.txt , Ay , d)
帮我做做吧~~~~
[em10][em10][em10][em10][em10][em10][em10][em10][em10]

回复列表 (共1个回复)

沙发

你干脆就说是实现 dir /oe 按扩展名排序就好了。

假如你只为实现这个结果,没有后续要求的话:

1. 分离扩展名和文件名(利用有无“.”号作分隔)
2. 如果名是空的,换成三个空格
3. 把两个名换一换位置,即   字符串=扩展名+文件名
4. 把换好的字符串排序就行了。

假如你想在这里抄作业嘛,那我只好说抱歉了,
你把作业做出来,我帮你改还差不多。

我来回复

您尚未登录,请登录后再回复。点此登录或注册