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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题