C++ 驿站

renzhewh 2010-08-30 05:38:43

第一题是关于最大子段和(算是经典题了)
这里寻求效率高的代码,具体题目要求如下
http://acm.hdu.edu.cn/showproblem.php?pid=1003

本人代码的运行结果 15MS 540K 991B 复杂度为O(n)

#include <stdio.h>

void MaxSum(int* data, int len)
{
int nBegin = 0, nEnd = 0;
int nSum = data[0];

int nCurBegin = 0;
int nCurSum = 0;
int i;

for (i = 0; i < len; ++i)
{
nCurSum += data[i];

if (nCurSum > nSum)
{
nBegin = nCurBegin, nEnd = i;
nSum = nCurSum;
}

if (nCurSum < 0)
{
nCurBegin = i + 1;
nCurSum = 0;
}
}

printf("%d %d %d\n", nSum, nBegin + 1, nEnd + 1);
}

int main()
{
enum {MAXLEN = 100000 + 1};
int data[MAXLEN] = { 0 };

int nTimes, nNums;
int i, j;
scanf("%d", &nTimes);

for (i = 1; i <= nTimes; ++i)
{
scanf("%d", &nNums);
for (j = 0; j < nNums; ++j)
{
scanf("%d", data + j);
}

printf("Case %d:\n", i);
MaxSum(data, nNums);
if (i < nTimes)
puts("");
}

return 0;
}

第二题是 《C++程序设计语言》中的题,算是个智力题
写一个符合标准的C++程序,其中包含一段至少有十个不同的连续的关键字,
其间没有标识符、运算符、标点符号等分隔它们

第三题 一个语法问题
想实现一个二进制读取文件类,可是无法接收endl(详见注释部分),不知道为什么?
#include <iostream>
#include <fstream>
using namespace std;

// 文件的二进制读取类
class bofstream : public ofstream
{
public:
bofstream(const char* fn)
: ofstream(fn, ios::out | ios::binary)
{}

void writebytes(const void* content, int size)
{
write((char*)content, size);
}

template <typename t>
bofstream& operator<< (const t& value)
{
writebytes(&value, sizeof(t));
return *this;
}
};

int main()
{
bofstream bof("data.txt");
bof << 124;
// bof << endl; 编译错误
return 0;
}

最后一题 压轴的 :-)
定义一个带有操作save()和no_save()的基类Persistent,用它可以控制在析构函数里是否将对象写入永久存储器。
除了这两个操作外,类还应该提供哪些有用的操作?用一些你选定的类测试。

希望回答者能叙述的详细点

...全文
144 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
renzhewh 2010-09-10
  • 打赏
  • 举报
回复
help 2
renzhewh 2010-09-01
  • 打赏
  • 举报
回复
%……&%&……%&%&%(*&*&(*&……(……*&……
help
renzhewh 2010-08-31
  • 打赏
  • 举报
回复
==========
MichaelBomb 2010-08-30
  • 打赏
  • 举报
回复
学而时习之
Q446512799 2010-08-30
  • 打赏
  • 举报
回复
抢个SF慢慢看~~
1、VC++编程环境介绍 ①、编程环境、编译器; ②、名词解释; ③、一个简单的MFC对话框工程; ④、个人认为在学习过程中可以看的不错书籍; ⑤、VC编译EXE在没装VC的电脑上运行出错问题解决! 2、ANSI与UNICODE ①、ANSI与UNICODE; ②、不同编码格式下的字符串处理及相互转化; ③、CString常用操作讲解。 3、模态对话框与非模态对话框 ①、模态与非模态对话框的创建; ②、新对话框的初始化工作; ③、两个对话框之间数据传递的几种方法。 4、对话框控件不同类型成员变量的绑定 ①、控件各种类型变量的绑定、最大值及最小值问题; ②、对话框数据交换与验证机制; ③、各种开源控件类的使用; ④、MFC与SDK API中同名函数问题。 5、VC中常用控件的用法讲解 ①、VC中常用控件的用法讲解见:http://www.cctry.com/thread-106-1-1.html ②、VS2008中新增控件的用法讲解。 6、定时器讲解 ①、定时器相关函数讲解:SetTimer、OnTimer、KillTimer; ②、利用定时器实现动态显示时间; ③、改变CStatic控件的文字颜色。 7、MFC对话框程序响应鼠标及键盘消息 ①、MFC对话框程序响应鼠标点击消息; ②、MFC对话框程序响应键盘按键消息; ③、MFC对话框程序响应组合键。 8、MFC对话框注册全局系统热键 9、控件自定义消息的响应: ①、响应按钮控件的右键消息; ②、响应Static控件的双击消息。 ③、自定义编辑框控件只读、颜色不变灰 10、再论“逃跑”按钮的实现 ①、MoveWindow、SetWindowPos、GetWindowRect函数讲解; ②、坐标系的变换。 11、通用对话框讲解 ①、文件选择对话框; ②、目录选择对话框; ③、让对话框程序支持拖拽。 12、菜单操作 ①、对话框程序添加菜单; ②、右键弹出式菜单; ③、菜单项的启用与禁用。 13、对话框的工具栏操作 ①、工具栏的创建; ②、工具栏按钮的响应。 14、对话框的状态栏操作 ①、状态栏的创建; ②、状态栏显示时钟、鼠标位置、鼠标点的颜色信息等。 15、一个简单计算器软件的编写 ①、计算功能的实现; ②、剪贴板操作:将计算结果保存到剪贴板。 16、文件的基本操作之CFile[Ⅰ] ①、文件的创建、打开、关闭; ②、文件的读写、何时读取完毕、读取一行数据; ③、文件指针位置的设置; ④、刷新缓存数据到文件; 17、文件的基本操作[Ⅱ] ①、文件的复制[适用于文件夹]; ②、文件的重命名或移动[适用于文件夹]; ③、文件的删除[只读属性]; 18、文件属性信息的获取与设置 ①、属性信息的获取:大小、时间、隐藏属性等; ②、属性信息的设置 [删除只读属性文件]; ③、判断文件是否存在以及是否为目录; 19、文件夹操作 ①、文件夹的创建与删除; ②、文件夹的属性信息的获取:时间、隐藏属性等; ③、文件夹大小的获取:遍历文件方法[下节课讲解]; 20、文件的遍历与查找小软件的编写[包括文件的各种属性信息] 21、系统各种路径信息的获取 ①、Windows、System32、temp、桌面目录、我的文档等目录的获取; ②、应用程序当前目录的获取与设置及存在的问题讲解; ③、可执行文件所在目录[包括EXE和DLL]; ④、工程当前目录与Debug调试目录的不同。 22、系统信息的获取 ①、当前用户名称、计算机名称的获取; ②、CPU、内存、硬盘信息的获取。 23、进程的相关操作 ①、进程创建的三种方法及CreateProcess参数存在的问题; ②、进程的结束; 进程的枚举 一个简单任务管理器的实现 MFC中动态数组、动态链表、映射表的讲解 ClistCtrl 的自绘操作!

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧