欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法竞赛入门经典(第2版)总结

程序员文章站 2022-03-14 23:19:22
...

第一章程序设计入门总结

算法竞赛:
1-1: 整数值用%d输出,实数用%f输出。
1-2: 整数/整数=整数,浮点数/浮点数=浮点数
1-3: scanf中的占位符和变量的数据类型应一一对应,且每个变量前需要加"&"符。
1-4: 在算法竞赛中,输入前不要打印提示信息。输出完毕后应立即终止程序,不要等待用户按键,因为输入输出过程都是自动的,没有人工干预。
1-5: 在算法竞赛中不要使用头文件 conio.h , 包括getch()、clrscr()等函数。
1-6: 在算法竞赛中,每行输出均应该一回车符结束,包括最后一行。除非特别说明,每行的行首不应该有空格,但行末通常可以有多于空格。另外,输出的每两个数或者字符串之间应该以单个空格隔开。
1-7: 尽量用const关键字声明常数
1-8: 赋值是一个动作,首先计算出右边的值,在赋给左边的变量,覆盖它原来的值。
1-9: printf的格式字符串中可以包含其他可打印符号,打印时原样输出。
1-10: 算法竞赛的题目应当是非常严密的,各种情况下的输出均应该有严格规定。如果在比赛中发现题目中有漏洞,应向有关人员进行询问,尽量不要自己随意假定。
1-11: 赋值a=b之后,变量a原来的值被覆盖,而b的值不变。
1-12: 可以通过手工模拟的方法理解程序的执行方式,重点在于记录每一条语句执行之后各个变量的值。
1-13: 交换两个变量的三变量法适用范围广,推荐使用。

//输入两个整数a和b,交换二者的值 ,然后输出。
//程序:变量交换
#include<stdio.h>
int main(){
	int a,b,t;
	scanf("%d%d",&a,&b);
	t=a;
	a=b;
	b=t;
	return 0;
}
//那么不就是说三变量法是解决本问题的最佳途径呢?答案是否定的,所属算法竞赛采用黑盒模式,即只考察程序解决问题的能力,而不关系采用了什么方法。对于本题目而言最适合的程序如下:
#include<stdio.h>
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d %d\n",b,a);
	return 0;
}

1-14: 算法竞赛是在比谁能更好的解决问题,而不是在比谁写的程序看上去更高级。
1-15: if语句的基本格式为:if(条件) 语句 1; else 语句 2。
1-16: if语句的条件是一个逻辑表达式,它的值可能为真,也可能为假。单个整数值也可以表示真假,其中0为假,其他值为真。
1-17: C语言中生物逻辑运算符都是短路运算符。一旦能够确定整个表达式的值,就不再继续运算。
1-18: 算法竞赛的目标是编程对任意输入均得到正确的结果,而不仅是样例数据。
1-19: 如果有多个并列、情况不交叉的条件需要一一处理,可以用else if 语句。
1-20: 适当在程序中编写注释不仅能让其他用户更快地搞懂你的程序,还能帮你自己理清思路。
1-21: 可以用花括号把若干条语句组合成一个整体。这些语句仍然按照顺序执行。

第二章循环结构程序设计总结

敬请期待…

相关标签: 算法竞赛