新建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中获取bean的方式
获取bean的方式 1.可以通过上下文的getBean方法 2.可以通过@Autowired注入 定义controller @RestController @RequestMapping(" ...
- webpack chunkFilename 非入口文件的命名规则 [转]
官网的文档只理解了filename是主入口的文件名,chunkFilename是非主入口的文件名 filename应该比较好理解,就是对应于entry里面生成出来的文件名.比如: { entry: { ...
- 全网最全小白搭建Hexo+Gitee/Coding
全网最全小白搭建Hexo+Gitee/Coding 本站内容已全部转移到https://www.myyuns.ltd,具体请移步到www.myyuns.ltd查看
- Linux 配置ip 子接口 多网卡绑定
linux系统配置ip地址,图形化界面略过,这里只介绍文本行.做以下设置注意是否有此权限 查看当前路由及网关信息: [root@localhost ~]# netstat -r Kernel IP r ...
- 如何在GitHub预览html
1.在GitHub中找到需要预览的html文件,点击settings 2.找到GitHub Pages,将其中的source改为master branch,此时出现了下图中的红色链接,打开一个新的网页 ...
- C#设计模式学习笔记:(13)模板方法模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7837716.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第一个模式--模 ...
- 一个用python写的比特币均线指标
https://blog.csdn.net/gsl222/article/details/104554397 https://github.com/yyy999/auto_ma912 一个用pytho ...
- 随着页面滚动,数字自动增大的jquery特效
首先为了截出gif图,我下载了一个小工具 GifCam: https://www.appinn.com/gifcam/ 随着页面滚动,数字自动增大的jquery特效 主要就是依赖这个脚本script. ...
- SAP 对HU做货物移动报错-Only 0 serial numbers entered instead of 30 -
SAP 对HU做货物移动报错-Only 0 serial numbers entered instead of 30 - 元旦刚过,就收到客户的业务人员报错说,当其对HU做转库(同一个公司代码下工厂到 ...
- MongoDB集群负载不均衡问题定位及解决
1.问题描述 这是一套运行在腾讯云上的MongoDB 3.6版本集群,共5个分片,每片规格是6核16GB. 在压测的过程中,发现第3个分片的CPU使用率长时间高达96%,其它4个分片的CPU使用率都没 ...