目录:
前言
一、输入
二、输出
三、重定向
四、初学者常见问题
五、帮助资料
前言:
工欲善其事,必先利其器,在本文之前,先介绍下我们的编码工具(IDE、代码编辑器)
-
开源新版本的Dev C++ 5.7.1:Orwell Dev-C++ (可以用于Windows XP、Win7和Win8)(c/c++、入门时使用)
- sublime text 3:下载:http://www.sublimetext.com/3
- sublime text 3详细教程:http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html#3036832 (几近完美的代码编辑器、强力推荐)
-
Microsoft Visual Studio 2013 Express的下载地址:面向 Windows 的 Microsoft Visual Studio Express 2013 预览版(C#、推荐)
- Eclipse:download.eclipse.org/(java、推荐)
- Geany的官网:http://www.geany.org (Windows需要另外安装MinGW)
- MinGW的官网:http://mingw.org (Dev C++自带MinGW,不需要另外下载安装MinGW)
一、输入
第一类:
输入不说明有多少个Input Block,以EOF为结束标志。
参见:HDOJ_1089
http://acm.hdu.edu.cn/showproblem.php?pid=1089
#include
int main()
{int a, b;while (scanf("%d %d", &a, &b) != EOF)printf("%d\n", a + b);
}
while(scanf("%d %d",&a, &b) != EOF)
{.... }
while( cin >> a >> b ) {.... }
第二类:
#include
int main()
{int n, i, a, b;scanf("%d", &n);for (i = 0; i
}
scanf("%d", &n) ;
for ( i = 0 ; i
{....
}
cin >> n;
for ( i = 0 ; i
{....
}
第三类:
#include
int main()
{int a, b;while (scanf("%d %d", &a, &b) && (a != 0 && b != 0))printf("%d\n", a + b);
}
while(scanf("%d",&n) && n!=0 ) {.... }
while( cin >> n && n != 0 ) {.... }
第四类:
第五类:
char buf[20]; gets(buf);
getline( cin , buf );
说明1 :
说明2 :
cin.getline的用法:
二、输出
第一类:
一个Input Block对应一个Output Block,Output Block之间没有空行。
第二类:
一个Input Block对应一个Output Block,每个Output Block之后都有空行。
#include
int main()
{ int a,b;while(scanf("%d %d",&a, &b) != EOF) printf("%d\n\n",a+b);
}
第三类:
一个Input Block对应一个Output Block,Output Block之间有空行。
#include
int main()
{int icase, n, i, j, a, sum;scanf("%d", &icase);for (i = 0; i
}
for (k = 0; k
{while (…){printf(" %d\n", result);} if (k != count - 1) printf("\n");
}
三、 重定向
a ) 方法一:修改源文件,指定重定向的输入、输出文件 (推荐)
#ifndef _OJ_
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
b) 方法二:在 IDE 中通过设置命令行,重定向输入、输出文件
四、初学者常见问题
1.编译错误
int num = 100;
char str[25];
sprintf(str, " %d" , num);
2.C语言处理“混合数据”的问题
……
scanf("%d\n", &icase);
for (i = 0; i
{scanf("%c%d%d", &opera, &num1, &num2);……
}
……
3.printf和cout混用的问题
#include
#include
int main()
{int j = 0;for (j = 0; j <5; j++){cout <<"j=";printf("%d\n", j);}return 0;
}
详情请参考:《探寻C++最快的读取文件的方案》 http://www.cnblogs.com/Code--Monkey/articles/4131722.html
4.纯字符串用puts()输出:
5.一般用C语言节约空间,要用C++库函数或STL时才用C++;
6.有时候int型不够用,可以用long long或__int64(两个下划线__)。
7.OJ判断是只看输出结果的,所以不要要多余的提示输出。
while(case--)
{scanf(...);......printf(...);
}
8.读到文件的结尾,程序自动结束:
读到一个0时,程序结束:
9.数组定义int a[10] = {0};可以对其全部元素赋值为0;
10.有很多数学题是有规律的,直接推公式或用递归、循环。
11.圆周率=cos(-1.0) 自然对数=exp(1.0)
12.如果要乘或除2^n,用位移运算速度快。a>>n;a< 13.定义数组时,数组大小最好比告诉的最大范围大一点。
字符数组大小必须比字符串最大长度大1。 处理字符数组时不要忘了在最后加&#39;\0&#39;或者0。 14.擅用三目运算符
int max(int a,int b)
{return a>b?a:b;
}
int gcd(int m,int n)
{return n?gcd(n,m%n):m;
}
int abs(int a)
{return a<0?-a:a;
}
15.将乘法转换成加法减少时间
log(a*b)=log(a)+log(b) 将乘法转换成除法防止溢出 a/(b*c)=a/b/c 16.排序要求不高时可以用C++的STL模板函数sort(),stable_sort()
int a[n]={...};
sort(a,a+n);
bool cmp(int m,int n)
{return m>n;
}
sort(a,a+n,cmp);
17.有的题数据范围小但是计算量大可以用打表法
先把结果算出来保存在数组里,要用时直接取出来。 18.浮点数比较时最好控制精度
#define eps 1e-6 fabs(a-b) 19.有些字符串与整型的转换函数是非标准的
可以使用sscanf()和sprintf()代替 sscanf(s,"%d",&n);//从字符串s中读入整数n sprintf(s,"%d",n);//将n转换为字符串s 五、帮助资料
1.程序提交后的提示
1) Accepted (AC) :程序已经通过
2) Wrong Answer (WA) : 运行结果不正确
3) Presentation Error (PE) :程序运行结果正确,但结果的格式不正确。
4) Runtime Error (RE) : 程序运行时出错。例如:用0作除数、数据溢出、下标越界。
5) Time Limit Exceeded (TLE) : 超时间限制。
6) Memory Limit Exceeded (MLE) : 超内存限制
7) Compilation Error (CE) : 编译错误 2.在线系统网址:
1) 北京大学:http://poj.org/ 题目丰富全面,但主要是英文题。
2) 百炼:http://poj.grids.cn/ 北京大学内部练习系统。“程序设计导引及在线实践”书本上的例题来自该系统。
3) 浙江大学:http://acm.zju.edu.cn/ “ACM 程序设计”等3本书上的例题来自该系统。
4) 杭州电子科技大学:http://acm.hdu.edu.cn/ 题目相对容易,有中文题、电子教案与代码。
5) 湖南大学:http://acm.hnu.cn:8080/online/ 题目较难。
6) 浙江工业大学:http://acm.zjut.edu.cn/ 题目相对容易,有中文题。
7) 南京航空航天大学:http://acm.nuaa.edu.cn/ 有中文题。
8) 湖南师范大学:http://acm.hunnu.edu.cn/ 有中文基础题。
9) 湖南工业大学:http://openoj.awaysoft.com/ 有中文题。
10) 南阳理工学院:http://acm.nyist.net/ 有很多中文题。
11) 浙江台州学院:http://acm.tzc.edu.cn/ 有很多中文题 3.关于输入输出的进一步问题,可以自己查阅相关手册或资料。 也可参考标准手册,以上输入输出方法都是 C/C++标准输入输出,在 manual 中都有详细介绍。
cin: http://www.cplusplus.com/reference/iostream/cin/
scanf: http://linux.die.net/man/3/printf
对比:http://www.cnblogs.com/Code--Monkey/articles/4131722.html
本文部分内容转载于:power721 http://blog.csdn.net/power721/article/details/4503056
13.定义数组时,数组大小最好比告诉的最大范围大一点。
14.擅用三目运算符
int max(int a,int b)
{return a>b?a:b;
}
int gcd(int m,int n)
{return n?gcd(n,m%n):m;
}
int abs(int a)
{return a<0?-a:a;
}
15.将乘法转换成加法减少时间
16.排序要求不高时可以用C++的STL模板函数sort(),stable_sort()
int a[n]={...};
sort(a,a+n);
bool cmp(int m,int n)
{return m>n;
}
sort(a,a+n,cmp);
17.有的题数据范围小但是计算量大可以用打表法
18.浮点数比较时最好控制精度
19.有些字符串与整型的转换函数是非标准的
五、帮助资料
1.程序提交后的提示
1) Accepted (AC) :程序已经通过2) Wrong Answer (WA) : 运行结果不正确
3) Presentation Error (PE) :程序运行结果正确,但结果的格式不正确。
4) Runtime Error (RE) : 程序运行时出错。例如:用0作除数、数据溢出、下标越界。
5) Time Limit Exceeded (TLE) : 超时间限制。
6) Memory Limit Exceeded (MLE) : 超内存限制
7) Compilation Error (CE) : 编译错误
2.在线系统网址:
1) 北京大学:http://poj.org/ 题目丰富全面,但主要是英文题。2) 百炼:http://poj.grids.cn/ 北京大学内部练习系统。“程序设计导引及在线实践”书本上的例题来自该系统。
3) 浙江大学:http://acm.zju.edu.cn/ “ACM 程序设计”等3本书上的例题来自该系统。
4) 杭州电子科技大学:http://acm.hdu.edu.cn/ 题目相对容易,有中文题、电子教案与代码。
5) 湖南大学:http://acm.hnu.cn:8080/online/ 题目较难。
6) 浙江工业大学:http://acm.zjut.edu.cn/ 题目相对容易,有中文题。
7) 南京航空航天大学:http://acm.nuaa.edu.cn/ 有中文题。
8) 湖南师范大学:http://acm.hunnu.edu.cn/ 有中文基础题。
9) 湖南工业大学:http://openoj.awaysoft.com/ 有中文题。
10) 南阳理工学院:http://acm.nyist.net/ 有很多中文题。
11) 浙江台州学院:http://acm.tzc.edu.cn/ 有很多中文题
3.关于输入输出的进一步问题,可以自己查阅相关手册或资料。 也可参考标准手册,以上输入输出方法都是 C/C++标准输入输出,在 manual 中都有详细介绍。
cin: http://www.cplusplus.com/reference/iostream/cin/
scanf: http://linux.die.net/man/3/printf
对比:http://www.cnblogs.com/Code--Monkey/articles/4131722.html
本文部分内容转载于:power721 http://blog.csdn.net/power721/article/details/4503056
转载于:https://www.cnblogs.com/swanGooseMan/p/4132132.html
-
本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]本文详细介绍了如何在Unity中通过脚本控制背景音乐的开启与关闭,适合初学者参考。 ... [详细]This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]在AngularJS中,有时需要在表单内包含某些控件,但又不希望这些控件导致表单变为脏状态。例如,当用户对表单进行修改后,表单的$dirty属性将变为true,触发保存对话框。然而,对于一些导航或辅助功能控件,我们可能并不希望它们触发这种行为。 ... [详细]本文探讨了在AspNetForums平台中实施基于角色的权限控制系统的方法,旨在为不同级别的用户提供合适的访问权限,确保系统的安全性和可用性。 ... [详细]Tags | 热门标签RankList | 热门文章
- 1java基础笔记JVM的阅读理解
- 2mysqlMySql服务启动不了,网上找不到类似的解决方法
- 3gulpcache与jade编译逻辑冲突
- 4GUISwing单选框/复选框
- 5用uniapp和springboot做出的高效记忆小程序,技术点总结
- 6c++sort函数三个参数解释
- 7初级开发人员应探索的10项(免费)数据结构和算法课程
- 8Excel怎么在一列关键字后面加相同的词
- 9CentOS搭建Nginx服务
- 10Vue3.x router 安装与引入
- 11IIC Communication Protocol
- 12dedecms打开怎么慢 dede首页加载很慢
- 13win7怎样设置开机自动运行
- 14php购物车页面如何做,HTML代码实现简易购物车
- 15RocketMQ源码系列(五) CommitLog 存取消息源码解析