算法入门记录(一)语言篇——1.3顺序结构程序设计

例题1、三位数反转

#include
int main()
{
	printf("------程序1-6 三位数反转(1)------\n");
	int n;
	scanf("%d", &n);
	printf("%d%d%d\n", n%10, n/10%10, n/100);	// '/'取商的整数部分  '%'取余数部分 
	
	
	printf("\n------程序1-7 三位数反转(2)------\n");
	printf("\n存在细节问题:520反转后是输出 025 or 25 ?\n");
	printf("解决方法:输出前将结果再转换为三位数,存储在变量m中\n");
	scanf("%d", &n);
	int m;
	m = (n%10)*100 + (n/10%10)*10 + (n/100);
	printf("%d\n", m);
	printf("该法也仍然可以输出025\n");
	printf("%03d\n", m);
	return 0;
}

测试:
算法入门记录(一)语言篇——1.3顺序结构程序设计_第1张图片
例题2、变量交换

#include
int main()
{
	printf("---程序1-8 变量交换(1)------\n");
	printf("借助变量法\n");
	int a, b, t;
	scanf("%d%d", &a, &b);
	t = a;
	a = b;
	b = t;
	printf("%d %d\n", a, b);
	
	printf("\n---程序1-9 变量交换(2)------\n");
	printf("不借助变量法\n");
	scanf("%d%d", &a, &b);
	a = a + b;
	b = a - b;
	a = a - b; 
	printf("%d %d\n", a, b);
	
	printf("不借助变量法---用异或运算\n");
	scanf("%d%d", &a, &b);
	a^=b^=a^=b;
	printf("%d %d\n", a, b);
	
	printf("\n---程序1-10 变量交换(3)------\n");
	scanf("%d%d", &a, &b);
	printf("%d %d\n", b, a);
	return 0;
}

测试:
算法入门记录(一)语言篇——1.3顺序结构程序设计_第2张图片

归纳要点:

1.算法竞赛题目在各种情况下的输出均应有严格规定,如有发现漏洞,应及时向相关人员询问。
2.math.h中定义的常量M——PI,并不是ANSI C标准定义的。
3.赋值a=b之后,变量a原来的值被覆盖,而b的值不变。
4.交换两个变量的三变量法适用范围广,推荐。
5.在算法竞赛中比的是高效解决问题,不是程序看上去高不高级。(针对变量交换的第三种方法)

你可能感兴趣的:(C语言,原创,算法,c语言)