null\0 2018-11-04 05:27 采纳率: 0%
浏览 1014

acm病毒扫描器 1文件名以“.exe”结尾。 2在文件名列表中同时还存在去掉“.exe”后同名的文件。

我提交平台显示答案错误,求大佬帮忙看看。
题目描述
なに?!新买的 U盘这么快就中病毒了!
如下图所示,目录下多出很多同名的可执行文件:比如 1.gif 与 1.gif.exe 对应,main.c 于 main.c.exe 对应。它们都是病毒。但并不是所有可执行文件(扩展名为 .exe 的文件)都是病毒,比如图中的 problem.exe,并没不存在一个文件名字叫 problem,所以它不是病毒。

我会给你一些文件名列表,你能开发一款“病毒扫描器”帮我识别出哪些是病毒文件吗?识别方法是:
文件名以“.exe”结尾。
在文件名列表中同时还存在去掉“.exe”后同名的文件。

输入
输入数据有多组。
每组输入的第一行是一个整数 n(0 < n <= 1000),表示接下来会有 n 个文件名。
接下来的 n 行为文件名,每个文件名占一行。
文件名最多 16 个字符,并且中间不包含空格。
如果 n 等于 0,则程序结束。

输出
以字典顺序输出每一组数据中的病毒文件名。
每个文件名输出一行。

样例输入
2
a.txt
a.txt.exe
2
a
a.txt
10
a.txt
b.txt
d.txt.exe
c.txt
d.txt
a.txt.exe
e.txt
f.txt
e.txt.exe
g.txt
0
样例输出
a.txt.exe
a.txt.exe
d.txt.exe
e.txt.exe

#include<stdio.h>
#include<string.h>
int main()
{
    char str[1000][30], a[1000][30], num[1000];
    int i, j, k = 0, n;
    while (scanf("%d", &n) != EOF&&n != 0)
    {
        for (i = 0; i < n; i++)
        {
            scanf("%s", &str[i]);
        }
        for (i = 0; i < n; i++)
        {
            if (strstr(str[i], ".exe") == NULL)
            {
                strcat(str[i], ".exe");
            }

        }
        for (i = 0; i < n; i++)
        {
            for (j = i + 1; j < n; j++)
            {
                if (strcmp(str[i], str[j]) == 0)
                {
                    strcpy(a[k], str[i]);
                    k++; break;
                }
            }
        }
        for (i = 0; i < k; i++)
        {
            for (j = i + 1; j < k; j++)
            {
                if (strcmp(a[i], a[j])>0)
                {
                    strcpy(num, a[i]);
                    strcpy(a[i], a[j]);
                    strcpy(a[j], num);
                }
            }
        }
        for (i = 0; i < k; i++)
        {
            printf("%s", a[i]);
            if (a[i] != NULL)
                printf("\n");
            strcpy(a[i],"NULL");

        }
        k = 0;
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-04 05:40
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复