《算法竞赛 入门经典》

第一部分 语言篇

第一章 程序设计入门

目录

第一部分 语言篇

第一章 程序设计入门

1.1 算术表达式

1.2 变量及其输入

1.3 顺序结构程序设计

1.4 分支结构程序设计

1.5 注解与习题


1.1 算术表达式

printf("%.1f",8.0/5.0)

保留1位小数。  

8.0/5.0不能写为8/5。

8.0/5 ,8/5.0 , 1.0*8/5 均可以。

sqrt(x)作用:计算x的算术平方根

一般来说,在程序中用到数学函数,要在最开始处写包含头文件math.h

1.2 变量及其输入

①scanf的占位符与变量的数据类型一一对应,每个变量前有&符号;

②const double pi =acos(-1.0);

acos 即arc cos-1=π 利用语言手册

③尽量用const关键字声明常数

1.3 顺序结构程序设计

①%取余

②25输出025,将输出格式变为%03d

③三变量法交换两个变量

(1)t=a;a=b;b=a;

(2)a=a+b;b=a-b;a=a-b;

#include<stdio.h>
int main(){
 int a,b;
scanf("%d%d",&a,&b);
printf("%d %d\n",b,a);
return 0;
}
//问题为输入两个整数,交换两数值,然后输出,此为最合适的程序

注意:算法竞赛是在比谁能更好地解决问题,而不是比谁写的程序更高级。

1.4 分支结构程序设计

①if语句

②a||b一真为真,全假为假;

③三整数排序,从小到大排序后输出

#include<stdio.h>
int main(){
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}//若a>b,则a和b交换,a<b
if(a>c){t=a;a=c;c=t;}//若a>c,则a和c交换,a<c,先把a搞为最小,然后再比较b和c
if(b>c){t=b;b=c;c=t;}//若b>c,则b和c交换,b<c
printf("%d %d %d\m",a,b,c);
return 0;
}

1.5 注解与习题

①在C99中,double的输出必须用%f,而输入需要用%lf,但是在C89和C++中不必如此,输入输出都可以用%lf

②printf("\\n");输出\n

③题目:输入三角形的三条边的长度值(均为正整数),判断是否为直角三角形的三个边长,如果可以,则输出yes,如果不能,则输出no,如果根本无法构成三角形,则输出not a triangle

#include<stdio.h>
int main() {
	int a, b, c,t;
	scanf("%d%d%d", &a, &b, &c);
	if ((a + b) > c && (a + c) > b && (b + c) > a)
	{
		if (a > b) { t = a; a = b; b = t; }
		if (a > c) { t = a; a = c; c = t; }
		if (b > c) { t = b; b = c; c = t; }//先把a,b,c排序交换数值使得a<b<c
		if (a*a + b * b ==c * c)
		{
			printf("yes");
		}
		else
		{
			printf("no");
		}

	}
	else
	{
		printf("not a triangle");
	}
return 0;
}

④注意闰年,4的倍数是,100的倍数不是(400的倍数是)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值