C语言程序设计(理论课)第五章 分支结构和程序设计

第五章分支结构和程序设计

选择结构和条件判断
C语言有有两种选择语句

  • if语句,用来实现两个分支的选择结构
  • switch语句,用来实现多分支的结构选择

5.1 if语句

用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。选择结构和条件判断。

If语句的三种形式:
形式1 没有else子句部分
if (<表达式>)
   <语句A>
语法功能:
 先判断<表达式>的值,若该值为“真”,则:执行<语句A>;
 否则:什么也不执行。
注意:

  1. <表达式>:一般为条件表达式或逻辑表达式。
  2. if语句中的<语句A>一般情况下都是以复合语句的形式出现,即用一对花括号将语句括起来。如果语句只有一条,则可以不需要花括号
  3. if结构的流程图: 在这里插入图片描述
    【例5.1】输入两个实数,按代数值由小到大的顺序输出这两个数。
    **解题思路:**只要做一次比较,然后进行一次交换即可。用if语句实现条件判断。
#include<stdio.h>
int main()
{
   
	float a,b,temp;
	printf("please enter a and b:");
	scanf("%f,%f",&a,&b);
	if(a>b)
	{
   				//将a和b的值互换
		temp=a;
		a=b;
		b=temp;
	}
	printf("%7.2f,%7.2f\n",a,b);
	return 0;
}

在这里插入图片描述

两个变量值的互换
a=b;//把变量b的值赋给变量a,a的值等于b的值
b=a;//再把变量a的值赋给变量b,变量b值没有改变
因此,为了实现互换,必须借助于第三个变量

【例5.2】输入a,b,c三个数,要求按由小到大的顺序输出。

#include<stdio.h>
int main()
{
   
	float a,b,c,temp;
	printf("please enter a,b,c:");
	scanf("%f,%f,%f",&a,&b,&c);
	if(a>b)
	{
   	temp=a;		//借助变量t,实现变量a和变量b互换值
		a=b;
		b=temp;
	}				//互换后,a小于或等于b
	if(a>c)
	{
   	temp=a;		//借助变量t,实现变量a和变量c互换值
		a=c;
		c=temp;
	}				//互换后,a小于或等于c
	if(b>c)
	{
   	temp=b;		//借助变量t,实现变量b和变量c互换值
		b=c;
		c=temp;
	}				//互换后,b小于或等于c
	printf("%7.2f,%7.2f,%7.2f\n",a,b,c);	//顺序输出a,b,c的值
	return 0;
}

算法步骤
S1:if a>b,将a和b对换(交换后,a是a,b中的小者)
S2:if a>c,将a和c对换(交换后,a是a、c中的小者,因此a是三者中的最小者)
S3:if b>c,将b和c对换(交换后,b是b、c中的小者,也是三者中次小者)
S4:顺序输出a,b,c

在经过第1次互换值后,a≤b,经过第2次互换值后a≤c,这样a已是三者中最小的(或最小者之一),但是b和c谁大还未解决,还需要进行比较和互换。经过第三次互换值后,a≤b≤c。

在这里插入图片描述
形式2 有else子句部分
if(<表达式>)
   <语句A>
else
   <语句B>
式中<表达式>,一般条件表达式或逻辑表达式。

语法功能:
先判断<表达式>的值,若其值为“真”,则执行<语句A>,否则执行<语句B>。
注意:
结构中的<表达式>,<语句A>与<语句B>的规定同if结构。if_else结构的流程图如图所示。

在这里插入图片描述
【例5.3】设计一个猜数游戏,由计算机产生一个随机数magic,从键盘输入一个数guess,若输入的数guess的大小等于随机数magic,则输出“Gratulation!You Are right.”。否则,输出“Sorry!You Are Wrong.”。
掌握伪随机数,真随机数看一下就行

分析: 计算机产生的随机数有两种:
①伪随机数②真随机数
伪随机数: 实际上是一组预先安排好的一个数列,可通过函数rand()获取;
真随机数: 通过一个随机种子对伪随机数进行重新排列而得,该随机种子可以是任何数。如果取时间作为随机种子,为简单起见,本题由计算机产生的数就用随机函数rand()直接取伪随机数。

/*猜数游戏的程序*/
#include<stdio.h>
#include<stdlib.h>
main()
{
   
	int guess,magic;
	magic=rand()
	printf("Please enter a guess number:\n");
	scanf("%d",&guess);
	if(guess==magic)
		printf("Gratulation!You Are Right.\n");
	else
		printf("Sorry!You Are Wrong.\n");
}

在这里插入图片描述
真随机数

/*example猜数游戏的程序中,计算机产生真随机数*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
   
	int guess,magic;
	srand(time(NULL));
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第五版《C语言程序设计》第5章是关于循环结构的学习内容,可以在CSDN上找到思维导图来帮助学习。 思维导图是一种图形化的方法,用于展示知识的关联和结构。通过将相关概念用图形化方式展示,思维导图可以帮助我们更好地理解和记忆知识点。 在CSDN上搜索第五版《C语言程序设计》第5章思维导图,可以找到一些概括了该章节重要知识点的图表。这些思维导图通常使用文字、图形和箭头等元素,以清晰而简洁的方式呈现循环的概念、语法和应用。 通过观看这些思维导图,我们可以获取基本的循环语句的语法知识,包括for循环、while循环和do-while循环。同时,这些图表还会涵盖循环的控制和嵌套循环的相关内容。 在学习循环结构时,思维导图可以作为一个辅助工具,帮助我们理清思路、记忆知识点以及加深对循环的理解。可以通过结合思维导图和课本的内容来进行学习,将图表的相关概念与具体的代码实例进行对照,加深对循环的掌握。 在C语言编程学习的过程,使用思维导图可以提高学习效率,帮助我们更快地掌握和运用循环结构的知识。可以将思维导图作为学习的参考资料,加深对C语言循环结构的理解和应用。 总之,通过在CSDN上找到第五版《C语言程序设计》第5章思维导图,我们可以利用这个工具更好地学习和掌握循环结构的知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值