分段函数.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 12
34(中间加了Tab)
(3) 12(加了回车)
34
输入输出格式说明的ቤተ መጻሕፍቲ ባይዱ结
printf() int——%d float——%f double——%f或%lf char——%c scanf() int——%d float——%f double——%lf char——%c
如何用printf( )和scanf( )函数
据的数据类型
格式说明符只能用小写字母:如%d不能写成%D
例:int x, y; scanf ("x=%d, y=%d", &x,&y) ;
int型数据用%d, float型数据用%f, double型数据要用%lf
切记!
2. 地址表列 :由若干个变量地址组成(如&a,不能写 成a),并与%开头的格式控制符一一对应.两个以上 时用逗号做间隔,个数,类型与格式说明保持一致
printf("输出一串字符"); 例:printf("这是hello");
printf("格式说明",变量名列表); 例: printf("a=%d,b=%d",a,b);
scanf("格式说明",变量地址列表); 例: scanf("%d,%d",&a,&b);
注意: 在输入和输出语句中,变量和格式说明的类型 及个数必须要一致
else
改正(1)去掉分号; (2)将分号和printf(“yes”);加上{ }
printf("no"); }
;也是一条语句,称为空语句, 什么也不做
(2) scanf使用初步 调用格式如下:
系统提供的库函数,在系统文件stdio.h中 声明,所以在源程序开始时要使用预编译 处理命令#include <stdio.h>
y=0; printf("y=%.1f\n",y); }
;去掉 y=1.0/x;
可见,if-else 语句常用于计 算二分段函数
改错:求球的体积
#include "stdio.h" #include <math.h> main() { double r,v; printf("Enter r:"); scanf("%d",r); v=4/3*3.14*pow(r,3); printf(“v=%.1f\n",v); }
例:int x, y; scanf ("x=%d, y=%d", &x,&y) ;
3.当格式控制字符之间不包括其它字符,且输入的是 数值型数据(整形或实型)时,数据之间可以用空格, Tab键或回车键(<CR>)分隔;
例: int a, b;
scanf ("%d%d", &a, &b);
输入:(1) 12 34(中间加了空格)
例: a+b>b+c等价于(a+b)>(b+c) a=b>c等价于a=(b>c) 2+a==b-a等价于(2+a)==(b-a)
—结合性:从左至右
例如:5>2>8
—关系表达式:用关系运算符将运算量链接起来 —关系表达式的值:真(1)和假(0)
计算这几个表达式的值:
(1)5>2>9 0
(2)‘a’<‘c’ 1
(3)已知a=1,b=2,c=3 求a+b>b+c
0
(2)程序中用到了if-else语句
一般形式:
if(表达式) 语句1;
真
假
表达式
else
语句1
语句2;
语句2
程序其他语句;
功能:
检测表达式,如果值为非0(真),则执行语句1,然后执 行程序其他语句;如果值为0(假),执行语句2,再执 行程序其他语句
2. 函数调用语句 : 由一个函数调用加一个分号构成
如: printf ("very good! ");
3. 空语句 : 由一个分号构成 , 它什么也不做 ;
4. 复合语句 : 用 { } 括起来的语句序列
如 { int temp ; temp = x ; x=y; y = temp ;
}
注意: 1.复合语句是一个整体, 相当于一条语句 2. 一个复合语句中可以包含其他的复合 语句 3. 在复合语句的花括号后不要再加分号
else max=b;
printf("max=%d\n",max); }
程序说明
(1)程序中,用a>b比较a和b的值大小,是一种关系运算
注意:与=的区别
关系运算: —运算符: >, <, >=, <=, ==(等于),!=(不等于) —双目运算符
例如:x<=15
—优先级 (a) >, <, >=, <=同一级别, (b)==,!=同一级别 (c)>, <, >=, <= 的优先级高于==,!= (d)关系运算符优先级高于赋值运算符=,低于算数 运算符
<stdio.h>可省,但是在VC++编译环境不可以
期末考试时不用考虑,因为不用自己去写,系统自带了
math.h里包含的常用数学库函数及调用方式:
平方根函数sqrt(x)
4
sqrt(4)
绝对值函数fabs(x)
|-2|
fabs(-2)
幂函数pow(x,n)
1.12
pow(1.1,2)
指数函数exp(x)
源程序:
#include "stdio.h" #include "math.h" main() {
double x,y; printf("Enter x:"); scanf("%lf",&x); if(x<=0)
y=fabs(x); else
y=exp(x); printf("\nx=%f,y=%f\n",x,y); }
scanf("%lf",&r); v=4.0/3*3.14*pow(r,3); 或v=4*3.14*pow(r,3) /3;
思考题
else可以省略吗? 例:判断一个是不是偶数,如果是,则输出这个数
if-else语句用于编写什么程序段? 双分支的选择结构
scanf(“格式控制字符串”,地址表列);
作用:按格式控制串的格式从终端为一个或多个不同 类型的变量赋值。
例:int x, y;
scanf (“x=%d, y=%d”, &x,&y) ; &——叫取地址符
输入: x=4,y=5
1. 格式控制: 用“ ” 括起来的字符串,包括两个部分 (1) 普通字符: 需要原样输入的字符(可有可无) (2) 格式说明: 由%和格式说明符组成,表示要输入数
双分支的if-else语句
注意事项:
if(表达式) 语句1;
else 语句2;
程序其他语句;
例: if(x>0)
{a=c/2; d=a+b;} else printf("good");
关于表达式: (1)表达式必须用圆括号括起来 (2)表达式通常使用关系表达式:
例:if(x>10) (3)表达式可以是一个常量或一个变量:
第二章 用c语言程序编写程序
2.1 常量与变量 2.2 计算分段函数 2.3 for语句
2.2 计算分段函数
编程:【例3-1】输出a=3,b=9中大的数。
#include "stdio.h" main() {
int a=3,b=9,max; /*使用if-else分支结构*/
if(a>b) max=a;
例:if(1) /*表达式为真*/ if(0) /*表达式为假*/ if(x)/*只要x的值不是0,表达式就为真*/
关于语句: 语句可以有一条,可以有多条,若有多条, 必须用 { } 括起来,构成复合语句
c语言的基本语句
1. 表达式语句 : 由表达式加分号构成
如: x=12 加 ; x=12 ; ( 赋值表达式语句 )
else
printf("偶数");
}
程序改错2:输入x,计算并输出下列分段函数y的值 (保留一位小数)
f
(x)
1 x
,
x
0
0, x 0
#include "stdio.h" main() { int x; double y; printf("Enter x:"); scanf("%d",&x); /********found********/ if(x!=0); /********found********/ y=1/x; else
关于库函数的调用
(1)要在程序中包含相应的头文件 例如:#include <stdio.h>或 #include “stdio.h” #include是编译预处理命令 它的作用是将某个已经存在的头文件包含到程序中(因 为事先编好的函数被放在一个文件中,用的时候要把这 个文件包含到程序里面来,才能调用要用的函数) (2)常用的头文件 stdio.h:包含这个头文件,才能调用标准的输入输出函数 math.h:包含这个头文件,才能调用数学函数 (3)在TC编译环境中,调用scanf(),printf()时,#include
程序改错1:任意输入一个数,如果是奇数输出“奇
数”, 否则,输出“偶数”。
#include "stdio.h"
main()
{
int x;
printf("Enter x:");
scanf("%d",&x);
/********found********/
if x%2!=0
printf("奇数");
if(x%2!=0)
e2.2
exp(2.2)
以e为底的对数函数log(x)
ln(123.45)
log(123.45)
举一反三【3-1】任意输入一个整数,如果能被3整 除,输出此数.否则,输出“不是3的倍数”。
#include "stdio.h" main() { int x; scanf("%d",&x); if(x%3==0)
printf("%d",x); else
printf("不是3的倍数"); }
错误总结
scanf(“%d\n”,&a);不能加\n,否则,输入时也要输入\n main()
{ printf(“x”); int y;
} float x;
scanf(“%f,%f”,&x,&y); ==和=的区别
练习
下面不正确的语句是:
x=y;
x+y;
a=12
;
不能看作一条语句的是:
{ ;}
{a=0;b=0;}
a=0; m=1;n=2;
阅读以下程序并思考所提出的问题:
main() {
int a=6;
(1)程序能正确运行吗? (2)此程序可实现什么功能?
if(a%2==0); printf("yes");
int a; if(a=3)不能实现比较 a==5;不能实现赋值
编程:【例3-2】计算分段函数
x (x≥0)
y= 3x3+1 (x<0 )
调用pow()和sqrt()函数
源程序:
#include "stdio.h"
#include "math.h"
main()
{
double x,y;
printf("Enter x:"); scanf("%lf",&x); if(x>=0)
%.2lf保留2位小数输出,%f 保留6位小数输出
y=sqrt(x);
else
y=3*pow(x,3)+1;
printf("\nx=%.2lf,y=%f\n",x,y);
}
举一反三【3-2】编写程序,输入x,利用分段函数, 计算并输出y值。
y= |x| (x≤0) ex (x>0)
提示:需要调用求实型数绝对值函数fabs和 指数函数exp。