- 编程竞赛宝典:C++语言和算法入门
- 张新华编著
- 1137字
- 2021-06-15 18:27:04
1.1 我的第一个程序
扫码看视频
我们使用Dev-C++这个适合初学者使用的C/C++集成开发环境来学习C++语言,读者可上网搜索“Dev C++ 下载”等关键词从网上下载该软件,或者使用浏览器访问www.magicoj.com(或者www.razxhoi.com),下载它的改进版本——Dev-CPP智能开发平台,如图1.1所示。
图1.1
安装界面如图1.2(a)所示。单击其中的“下一步”按钮,出现选择目标位置的界面,建议继续单击“下一步”按钮默认安装,如图1.2(b)所示。
图1.2
安装完成后运行软件,将出现初始设置界面。
如果没有出现初始设置界面或者弹出错误对话框(因为未正确卸载旧版Dev-C++)等,可在软件的“工具”菜单里选择“环境选项”,在“文件和路径”选项卡中单击“删除设置并退出”按钮,再重新运行软件即可恢复正常,如图1.3所示。
图1.3
设置好的软件界面(Dev-CPP智能开发平台支持换肤功能)如图1.4所示。
图1.4
存放代码的文件称为源代码文件,编写代码之前要新建一个源代码文件,图1.5所示为新建源代码文件的两种方法。
图1.5
如图1.6所示,由模板自动生成的代码(若使用的非Dev-CPP智能开发平台则用户需手动输入)显示在代码编辑区。
图1.6
如果不想要自动生成代码,想自己手动输入全部代码,只要在“工具”→“环境选项”中将新建文件时选中的“自动加载模板”选项取消即可。
#include <bits/stdc++.h> 表示编写的代码要包含子目录bits下的一个名为“stdc++.h”的头文件。之所以叫作头文件,是因为这类文件一般放在代码的开头。C++有许多头文件,它们可以实现一些特定的功能。stdc++.h头文件又称“万能”头文件,因为代码中只要包含该头文件就基本无须再包含其他头文件了。
using namespace std;表示使用的命名空间为“std”(std是英文单词“standard”即“标准”的缩写),这主要是为了解决名字冲突的问题,初学者暂不必深究。
“int”是英文单词“integer”即“整数”的缩写,和第7行的return 0相呼应。“return”的中文含义是“返回”,而0是整数,意思是给系统(调用者)返回整数0。0表示一切运行正常,即“没有消息就是好消息”,显然代码能运行到return 0,说明代码是正常结束而不是运行半途出错、异常退出的。
“main”的中文含义是“主要的”,C++程序里,必须有且只能有一个名为“main”的函数(主函数)。函数是指能完成一定功能的程序块,函数后面有圆括号,随后函数体用花括号标注,即第5~第8行。
C++程序的运行总是由main()函数的函数体里的第一条语句开始,到main()函数的函数体的最后一条语句结束。
现在编写代码,使程序运行后显示一行字符“Hello,world”,这需要在代码编辑区第6行空白处加入cout<<"Hello,world\n";,
如图1.7所示。
图1.7
cout用于输出紧随操作符“<<”后的双引号中的字符串,输出的字符串必须包含在双引号之中,其中“\n”表示换行。
C++语言对字母大小写敏感,例如字母“a”和“A”不同。
除输出内容有中文,需要用中文输入法在双引号中输入中文字符外,其他字符都必须用英文输入法输入,否则代码可能无法运行。
C++语言中,每条语句末尾应以分号(;)表示结束,但预处理、函数头及花括号之后一般不加分号。
写好的代码要及时保存,保存的文件的扩展名为.cpp,如图1.8所示。
图1.8
以.cpp为扩展名保存的文件叫作源文件,源文件不能直接运行,要编译成可执行的EXE文件后方可运行。如图1.9所示,打开“运行”菜单后单击“编译”,无论编译成功还是失败,都会在软件界面下方功能区的信息栏输出相应的信息。
图1.9
编译成功后,打开“运行”菜单单击“运行”,将出现如图1.10所示的命令提示符窗口,显示输出的文字,第一个C++程序编写成功了!
图1.10
如图1.11所示,程序编译生成的EXE文件可独立运行而无须编译器的环境支持。
图1.11
使用cout可以输出各类字符,例如,输出多行中文字符串的代码如下。
1 #include <bits/stdc++.h>
2 using namespace std;
3
4 int main()
5 {
6 cout<<"你好,C++语言\n\n";
7 cout<<"我是初学者\n";
8 cout<<"我喜欢编程\n";
9 return 0;
10 }
每一行输出字符串的末尾均有“\n”表示换行,输出结果如图1.12所示。
图1.12
1.1.1 并排的树(tree)
【题目描述】
请尝试编程输出如下的两棵“并排的树”。
* *
*** ***
***** *****
******* *******
* *
* *