C语言课程分支语句ppt
分支语句共16页17页PPT
![分支语句共16页17页PPT](https://img.taocdn.com/s3/m/0b9c1161767f5acfa1c7cdbc.png)
开始 分析问题 设计算法 编写程序 运行程序
问题解决
例题:输入一个三位数,输出该三位数各位上数 字之和。(如:输入123,输出6。)
算法流程图:
开始
输入一个三位数x
a=int(x/100)
b=int ((x-100*a)/10)
VB程序代码: Dim x,y,a,b,c as integer x=val(text1.text) a=int (x/100) b=int ((x-100*a)/10) c=x-100*a-10*b y=a+b+c Text2.text=str (y)
end if
写出虚线框中的VB程序代码:
1.
Y
开始 输入a
N
a>=0?
VB代码:
b=a
b = -a
输出b 结束
开始
2.
输入a
sum = 0
m=0
n=0
Y
a<0?
sum = sum+a
N n = n+1
m = m+1
输出b
VB代码:
3.
Y
p=3
开始 输入s s<=5?
Y
p=4
N
s<12?
N
p=5
if 条件表达式 then 语句1
N 条件
Y
步骤组
格式②
if 条件表达式 then 语句1 语句2 ……
end if
例1:
(1)
N
x>0?
Y
sum=sum+x
(2)
N
a<b?
Y
c=a
a=b
C语言4分支结构课件
![C语言4分支结构课件](https://img.taocdn.com/s3/m/47837e276c175f0e7cd13740.png)
式(即去掉花括号{语)句。组1;}
statement
执行过程: 例:例:if (x>y)
形式二格执iefl(s:行式eex过:p{{语r语e程s句句s:io组组n)21;;}}iefls(exmm>yaaxx) =={}e{xyls;;epppprrrriiiinnnnttttffff((((““““最%最%stdd大a大\t\nen值值m””非,,xye为为n))0;;t::1 ””e));x;pr
转移控制语句(break; continue, return; goto)
C 语
数据定义语句(int a;)
句 非指令语句
宏定义(#define)
编译预处理 文件包含(#include)
条件编译(#ifdef #else #endif)
复合语句(由一对花括号括起来的一组语句,如:{ int a; a = 1; printf(“%d”, a); })
第 4 章 选择型程序设计
算法的自然语言描述
例4-2 有50个学生,要求将他们之中成绩在80分以上者打印出来。
分析:逐一将每个同学的成绩与80分进行比较,符合条件即打印。设:n表示学生学号,n1表 示第一个学生学号;ni表示第i个学生学号;g表示学生成绩,g1表示第一个学生成绩, gi表示第i个学生成绩,使用gi与80进行判断。
(2)流程图:灵活、自由、形象、直观,可表示任何算法
输入/输出
处理
判断
开始/结束
连接符 数据流
(3)N-S图(盒图):完全去掉了带箭头的流程线,算法的所有处理步骤 都写在一个大矩形框里(描述简单,符合结构化的思想)
A
P
T
F
P
B
AB
第5讲分支语句
![第5讲分支语句](https://img.taocdn.com/s3/m/fcc096374a7302768e993974.png)
fengxiao@
回顾
C语言采用缓冲式输入,任何从键盘上输入的
数据均先放入内存的缓冲区中,所有信息被看 作由空白字符(空格、制表符、换行符等)分隔
的一个个字段。scanf的读入过程就是顺序地 处理这些字段
scanf和printf参数的类型必须和格式控制字符
关系成立 关系表达式均为双目运算符
2019/5/27
8
判断m是否是奇数
– m % 2 == 1 –m % 2
判断a、b是否相等 – a == b
判断m、n之和是否大于等于0 – m + n >= 0 – (m + n) >= 0
判断k是否不为0 – k != 0
在C语言中表达式a>b>c的结果是什么???
case 6:
printf(“your grade is : C”);break;
default:
printf(“your grade is : D”);break;
} 2019/5/27
28
作业
预习完循环
从键盘上输入年、月,输出该年有多少天 已知银行定期利率为:
–一年期:2.5% –三年期:4.5% –五年期:5.8% –八年期:8.5% –从键盘输入存款金额和存款年限,计算本利和
{
if (a==b || b==c || c==a)
{
printf("等腰");
flag = 0; } else if (a==b && b==c && c==a)
等腰在先
{ printf("等边");
第五章--分支结构PPT课件
![第五章--分支结构PPT课件](https://img.taocdn.com/s3/m/ebb16ae2844769eae109ed54.png)
2021/7/22
8
例2.用cond函数来描述下列计算式: x 0≤x<2
F(x)=
x2 2≤x<5 x3 5≤x<7
ex x≥7
程序为:
(initget 7)
(setq x (getreal “Enter x=? (x >= 0)”))
(setq fx (cond ((and (>= x 0) (< x 2)) x)
可以是表。
2021/7/22
5
2.〈测试—表达式〉的值不一定必须为T才算成立,因为从逻辑角度来说任何 非 nil 的 表 达 式 都 与 T 等 效 , 只 要 其 值 为 非 nil 即 可 , 例 如 〈 测 试 — 表 达 式 〉 为 1.2.“text”,(List 1 2 3),(setq a 3.0) (+ 13 8),(print “a”),a(已赋值)等,其值虽非T, 但为非nil,固测试均成立。并进行〈则—表达式〉。只有〈测试—表达式〉的值 为nil,如/(),(and (< 4 1) (> 3 2))测试不成功,则进行〈否则—表达式〉。
执行该函数时对表达式依次求值,只要有一个表达式的值为非nil则返回T。
只有2全021部/7/2表2 达式的值为nil,才返回nil,例如:
3
(or 1 2 3 nil)
返回值T
(or (< 5 3) (= 2 1) (/= 2 2) (> 3 5)
返回值nil
(or a b c d)
返回值nil
;(a b c d均未赋值)
((and (>= x 2) (< x 5)) (* x x))
((and (>= x 5) (< x 7)) (expt x 3))
C语言分支结构.ppt
![C语言分支结构.ppt](https://img.taocdn.com/s3/m/0d903d740242a8956aece44e.png)
3.1.5 else – if 语句
if(( ch>= 'a' && ch <= 'z' )||( ch>= 'A' && ch<='Z')) letter ++;
else if (ch >= '0' && ch <= '9') digit ++;
else other ++;
实现多路选择
else – if 语句
|| ( ch >= 'A' && ch <= 'Z' )
数字字符
ch >= '0' && ch <= ' 9'
其他字符 除此外
3.1.1 程序解析
#include <stdio.h> int main(void) {
int i, digit, letter, other; char ch;
处理方法: 逐个输入与判断
ASCII字符集:每个可用字符:惟一的 次序值( ASCII 码)见附录2
1 == ‘1’ ?
3.1.3 字符型数据的输入和输出
1. 字符输入函数getchar——输入一个字符
char ch; ch = getchar( );
2. 字符输出函数putchar——输出一个字符
putchar ( 输出参数 );
条件的表示
例3-2 写出满足下列条件的C表达式 (1) ch 是空格或者回车
ch == ' ' || ch == '\n'
c语言第三章ppt课件
![c语言第三章ppt课件](https://img.taocdn.com/s3/m/c36eeb775627a5e9856a561252d380eb6294233a.png)
§3.3 赋值语句
“=“是一个运算符 注意赋值表达式与赋值语句的区别
§3.4 输入输出在c中的实现
输入输出是以计算机主机为主体而言 输入输出是由函数来实现的
库函数:由厂商预先编写好,并编译成目标文件 使用库函数时,用预编译命令“#include”将有
关的“头文件”包含到用户源文件中。
#include <stdio.h> printf,scanf可不加#include命令
%m.ne和%-m.ne ,n指小数部分的小数位数 printf(“%e%10e%10.2e%.2e%-10.2e”,f,f,f, f,f); 设f=123.456,输出结果为
1.23456e+02 1.23456e+02 1.2e+02 1.2e+02 1.2e+02 ❖g格式符,用来输出实数,根据数值的大小,自动选
printf(“%f %10f %10.2f %.2f %-10.2f \n”,f,f,f,f,f) ;
运} 行结果:
123.456001 123.456001 123.46 123.46 123.46
❖e格式符:以指数形式输出实数 %e ,不指定输出数据所占宽度和数字部分的小数位数。 数值按规范化指数形式输出。 如:printf(“%e”,123.456);输出结果为1.23456e+02
❖格式控制:包含两种信息 格式说明: %格式字符 ,用于指定输出格式
普通字符或转义序列:原样输出
❖输出表列:要输出的数据(可以没有,也可以是表达 式,多个时以“,”分隔
printf(参数1,参数2,参数3……参数n )
格式字符
❖d格式符:输出十进制整数 %d ,按整型数据的实际长度输出 %md,m为指定的输出字段的宽度。如果数据的位数 小于m,则左端补空格,否则按实际位数输出 例:printf(“%4d,%4d”,a,b); 若a=123,b=12345,则输出结果为▂123,12345 %ld,输出长整型数据 例:long a=135790;printf(“%ld”,a); 也可以指定字段宽度,如%8ld
c语言运输公司按照以下方法计算运费,c语言程序设计第4章_分支结构.ppt
![c语言运输公司按照以下方法计算运费,c语言程序设计第4章_分支结构.ppt](https://img.taocdn.com/s3/m/fd0ba5856aec0975f46527d3240c844769eaa00b.png)
c语⾔运输公司按照以下⽅法计算运费,c语⾔程序设计第4章_分⽀结构.ppt《c语⾔程序设计 第4章_分⽀结构.ppt》由会员分享,可在线阅读,更多相关《c语⾔程序设计 第4章_分⽀结构.ppt(36页珍藏版)》请在⼈⼈⽂库⽹上搜索。
1、C语⾔程序设计教程(第2版),第4章 分⽀结构,第4章 分⽀结构,本章主要内容 1. if语句的基本结构 2.ifelse语句基本结构 3. if语句的嵌套结构 4. switch语句的基本结构 5.程序案例分析,第4章 分⽀结构,顺序结构:程序按照语句的先后顺序进⾏数据处理。
分⽀结构:程序要对问题进⾏判断,根据判断的结果,选择不同的处理⽅式,进⾏不同的操作。
C语⾔⽤于实现分⽀的结构: if结构 switch结构 4.1.1 if语句if语句结构是⼀种常⽤的分⽀结构,是最简单的⼀种单分⽀结构,该结构构成⼀个⼆叉结构。
,if语句的⼀般形式为。
if() 语法功能: 先判断的值,若该值为“真。
2、”, 则:执⾏; 否则:什么也不执⾏。
注意: 1. :⼀般为条件表达式或逻辑表达式。
2. if语句中的⼀般情况下都是以复合语句的形式出现,即⽤⼀对花括号将语句括起来。
如果语句只有⼀条,则可以不需要花括号 3. if结构的流程图 :,4.1 if结构,4.1 if结构,例1:从键盘任意输⼊两个实数a和b,要求a的值总是⼩于或等于b的值,然后输出这两个数a和b的值。
分析:根据题意,要求ab。
⽅案:先输⼊⼀个较⼩的数,赋给变量a,再输⼊⼀个较⼤的数,赋给变量b。
问题:输⼊的限制对⽤户不合理。
如果先输⼊的值较⼤,后输⼊的值较⼩,则结果为ab。
⽅案修正:不论输⼊的⼤⼩顺序怎样,总是会有ab的。
3、结果。
,4.1 if结构,算法的流程图如图所⽰: 其中虚线框为if结构。
程序的难点:交换a,b的值。
程序见:example4_1.c 例2:从键盘输⼊⼀个整数,求该数的绝对值。
c语言 分支结构 课件【2024版】
![c语言 分支结构 课件【2024版】](https://img.taocdn.com/s3/m/797a491703768e9951e79b89680203d8ce2f6a8a.png)
break;
default:
other ++;
break;
}
}
printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
return 0;
}
3.3 分支结构程序设计
分支结构一般分为二分支和多分支两种结构 用条件语句(if 和 switch)实现选择
printf("=%.2f\n", value1*value2);
break;
case '/': printf("=%.2f\n", value1/value2);
如果除数为0?
break;
default:
printf("Unknown operator\n");
break;
}
return 0;
2、在switch中不使用break
default :
语句段n+1;
}
表达式的值=常量表达式 1 的值
表达式的值=常量表达式 2 的值
表 达 式
表达式的值=常量表达式 n 的值
其他
switch (choice) { case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0;
if (x < 2)
if (x < 1) y = x + 1;
else y = x + 2;
每条语句的执行条件?
if (x < 2){ if (x < 1) y = x + 1;
C语言程序设计基础分支结构程序设计PPT课件
![C语言程序设计基础分支结构程序设计PPT课件](https://img.taocdn.com/s3/m/2875863d571252d380eb6294dd88d0d233d43ca2.png)
if 语句 if 语句
例:计算符号函数
输入变量x, 计算符号函数:
1 当 x>0
y = 0 当 x=0
-1 当 x<0
非0
非0
if (x>=0)
x>0
if(x>0) y = 1;
else y = 0;
else y = -1;
y=1
x >= 0
0
y=0
0 y = -1
例4-9
非0
0
x <2
非0
0
x <1
非0
0
exp1
int n;
(n>0) ? 2.9 : 1
n = 10
2.9
n = -10
1.0
x+2 x>0 y=
x2 x<=0
if ( x>0 ) y=x+2;
else y=x*x;
y = (x>0) ? x+2 : x*x;
4.3 switch语句
switch(表达式) {
case 常量表达式1:语句段1 case 常量表达式2:语句段2
非0
0
表达式
if (exp)
statement_1
语句1
ch=getchar(); if(ch>='a'&&ch<='z')
ch=ch-'a'+'A'; putchar(ch);
ch=getchar(); if(ch>='a'&&ch<='z'){
第四章 分支结构的C程序设计39页PPT文档
![第四章 分支结构的C程序设计39页PPT文档](https://img.taocdn.com/s3/m/a40e6af94028915f804dc275.png)
4.1.3 逻辑表达式
7
熟练掌握关系运算符和逻辑运算符,可以用逻辑表达式表 示一个复杂的条件。例如:判断某年y是否是闰年。y满足二者 之一为闰年:
(1)y能被4整除,但不能被100整除; (2)y能被400整除。 两个条件为或(||)的关系,条件(1)内的两个条件为与 (&&)的关系。判断整除用求余运算%,余数为0,则能整除。 表达式写成: (y % 4= =0 && y % 100 ! = 0 )|| y % 400 = = 0
4.2.1 if语句的简单形式
9
if语句的简单格式 if (表达式) 语句
可为算术、关系、逻辑、赋值 等表达式
内嵌语句,可为:
赋值语句 函数调用语句 控制语句 复合语句 空语句
功能:
– 计算表达式的值,如果是一个非0值(即 逻辑真),就执行内嵌语句,否则(即逻 辑假)跳过内嵌语句,顺序执行后续语句。
逻辑表达式的值也是一个逻辑值(非“真”即“假”)。
逻辑表达式求解,在值已能确定的情况下不一定求到最后。 如:
(1)表达式a && b && c: 当a=0时,表达式的值为0,不必计算判断b、c; 当a=1,b=0时,表达式的值为0,不必计算判断c; 只有a=1,b=1时,才判断c; (2)表达式a || b || c: 当a=1(非0)时,表达式的值为1,不必计算判断b、c; 当a=0时,才判断b,如b=1,则表达式的值为1,不必计算 判断c; 只有a=0,b=0时,才判断c;
C 程序设计
第四章 分支结构的C程序设计
山西大同大学 物电学院
本章主要内容
2
4.1 分支结构中的表达式 4.2 if语句
C语言公开课PPT课件
![C语言公开课PPT课件](https://img.taocdn.com/s3/m/3b89c963580102020740be1e650e52ea5518cedd.png)
• 根据流程图,写出程序代码
#include “stdio.h” main()
{
int x;
条件判断语句
scanf(“%d”,&x); if(x%2==0)
当条件不满足时则 执行else下的语句
printf(“Yes”); else
printf(“No”);
2023/11/13
}
语句2
2023/11/13
14
第14页/共26页
例:输入一个数X,判断其是否为偶数,是则输出“YES”,否则输出“NO”.
开始
你来试试吧……
输入正整数X
If(表达式) 其值有:真(非0)或假(0)
假 X%2==0
真 输出“Yes“
输出”No”
不是偶数就输出“No”
2023/11/13
结束
是1偶5 数则输出“Yes”
float x,y; printf("请输入x:"); scanf("%f",&x); if(x<0) y=x+1; else if(x<10) y=x*x-5; else y=x*2x2 *x;
第22页/共26页
(二)本节课总结
if语句
单选条件语句 双选条件语句 多选条件语句
2023/11/13
• if语句的三种形式: • 单选条件语句 • 双选条件语句 • 多选条件语句
2023/11/13
7
第7页/共26页
1 单选条件语句
• 格式:
if(<表达式>) <语句>
例:if 5>3(错误) if (5>3)(正确)
C语言分支结构PPT课件
![C语言分支结构PPT课件](https://img.taocdn.com/s3/m/68938fbc9b6648d7c0c74619.png)
开始
0=>p
1=>n
P+n=>p
n+1=>n Y n<=5
N 结束
5
第5页/共31页
算法的流程图描述
• 例4-4 有50个学生,要求将他们之中成绩在80分以上者打印出来。
ni, gi为第i个学生 的学号和成绩
S1:1=>i; S2:输入ni,gi; S2:若gi>=80,则打印ni和gi,否则不打印; S3:i+1=>i; S4:若i<=50,执行S2;
A P
i+1=>i 直到i>50时
7
第7页/共31页
算法的伪代码描述
伪代码:用介于自然语言和计算机语言之间的文字及符号来描述算法 (方便、易懂、便于向计算机语言过渡)
基本结构: begin 初始化; 执行语句1; …… 执行语句n; end
可以写文字,也可以写简易代码
8
第8页/共31页
§4.2 C语言的语句
运行:Enter integer a:12 Enter integer b:9 a!=b
printf("a!=b\n");
}
12
第12页/共31页
形式三: 格式: if (expr1)
{语句组1;}
else if( expr2)
{语句组2;}
else if( expr3)
{语句组3;}
……
[ else
index=0.2;
if (salary>400) inedlesxe=…0.1..;.
else if (salary>400)
else index=0;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/5/21
20
#include <stdio.h> void main() {
char ch;
解法1
printf("请输入一个字符:"); scanf(“%c”,&ch); //或者ch = getchar();
if(ch >= 'A' && ch <= 'Z') printf("%c是大写字母!\n",ch);
整型量的低八位中,高八位为与原来的符号位 相同。
–整型赋予字符型,只把低八位赋予字符变量
2020/5/21
6
常量的表示方法
宏定义 – #define PI 3.14159 – 宏名一般大写 – 宏替换是机械替换,不做语法检查,不提倡用宏常量
使用const关键字 – const修饰的标识符是常量,其值存储在只读存储区 – 格式:const float pi = 3.1415926;
判断某年是否为闰年:
– (!(year % 4) && (year % 100)) || ! (year
% 400 )
2020/5/21
14
算法的流程图表示
2020/5/21
15
练习1--判断整数的正负和奇偶
从键盘上键入1个整数,判断该数的奇偶 分析
–如何表示数的奇偶? –程序的基本思路是定义整数x,并从键盘接收其值,
2020/5/21
17
问题的求解
#include <stdio.h>
int main()
{ int x; /*定义待判断的整数*/
printf("请输入一个整数:"); scanf("%d",&x);
if(x % 2) printf("x 是奇数!\n");
else printf("x 是偶数!\n");
不要写依赖求值顺序的表达式
2020/5/21
5
关于复合赋值运算符:
– +=、-=、*=、/=、%=、<<=、>>=、&=、|=、
^=
关于不同数据类型数据间赋值
–实型赋予整型,舍去小数部分。
–整型赋予实型,数值不变,但将以浮点形式存
放, 增加小数部分(小数部分的值为0)。
–字符型赋予整型时,将字符的ASCII码值放到
ab 非0 非0 非0 0
0 非0 00
2020/5/21
!a !b 00 0 非0 非0 0 非0 非0
a||b 非0 非0 非0
0
a&&b 非0
0 0 0
13
思考
假设x=3,求下列表达式完成运算后,变 量x的值为多少
– 0 && (x = x + 1) && b
只有必须执行下一个表达式才能求出整个 逻辑表达式值时,才执行下一个运算
202% 2 == 1 –m % 2
判断a、b是否相等 – a == b
判断m、n之和是否大于等于0 – m + n >= 0 – (m + n) >= 0
判断k是否不为0 – k != 0
在C语言中表达式a>b>c的结果是什么???
2020/5/21
12
逻辑表达式
空白字符结束 f 以小数形式输入浮点数 e 以标准指数形式输入
2020/5/21
3
2020/5/21
4
赋值运算符
格式: –变量名 = 表达式;
赋值运算符左操作数必须是占有存储空间的量
赋值是由方向的,满足右结合性,与其他双目 运算符不同
赋值运算符优先级低于算术、关系、逻辑运算 符
赋值表达式的值被规定为运算完成后左操作数 的值
else if(ch >= 'a' && ch <= 'z') printf("%c是小写字母!\n",ch);
else if(ch == ' ') printf("%c是空格!\n",ch);
else if(ch >= '0' && ch <= '9') printf("%c是数字!\n",ch);
else printf("%c是其他字符!\n",ch);
2020/5/21return 0;
21
#include <stdio.h> #include <ctype.h> int main() {
char ch;
解法2
printf("请输入一个字符:"); scanf("%c",&ch); //或者ch = getchar();
重庆邮电大学计算机科学与技术学院 李盘林
lipl@
回顾--格式输入函数
格式输入函数 –scanf(格式控制字符串, 地址表列);
scanf("%d,%f”, &a,&b);
2020/5/21
地址表列
2
scanf格式字符
d 以带符号十进制形式输入整型数据 o 以八进制无符号形式输入(无前导0) x 以十六进制无符号形式输入(无前导0x) c 以字符形式输入单个字符 s 输入字符串,以非空字符开始,遇第一个
2020/5/21
7
主要内容
关系运算符、逻辑运算符、条件运算符 分支结构的运用
2020/5/21
8
重点 & 难点
学会运用关系运算符和逻辑运算符 能够利用分支结构灵活解决实际问题
2020/5/21
9
关系运算符
2020/5/21
10
几点说明
关系运算符有6个,表中前4个运算符优先级高 于后两个 关系运算符优先级低于算术运算符 关系表达式的值用0表示关系不成立,非0表示 关系成立 关系表达式均为双目运算符
利用分支结构判断其奇偶,最后输出
2020/5/21
16
利用if-else语句构建分支结构
分为if和if…else两种
if形式:
if(表达式) 语句;
if…else形式 if(表达式)
Y 条件 模块1 N
Y 条件 N
模块1
模块2
语句1; else
模块2
语句2;
根据表达式的值为0或非0决定程序执行流向
return 0;
} 2020/5/21
18
练习2--判断字符的类型
从键盘上输入一个字符,判断它属于大写字 母、小写字母、空格、数字、还是其他字符 分析
–如何从键盘输入一个字符 –可以从大写、小写字母、数字的ASCII码值范围来
判断字符究竟是什么类型
2020/5/21
19
字符输入输出函数
字符输出函数 –putchar(ch) –输出一个字符ch
if(isupper(ch))
printf("%c是大写字母!\n",ch);
else if(islower(ch))
printf("%c是小写字母!\n",ch);