《大学计算机基础实验教程(C语言版)》解析实训5

《大学计算机基础实验教程(C语言版)》解析

《大学计算机基础实验教程(C语言版)》东北大学出版社
源代码解析
作者:
辽宁工业大学 电子202 宋家盛制作
如有错误,请告知:jff_16@163.com
注:

  1. 解析为增加代码的可读性均使用函数实现
  2. 代码均可在Visual Studio 2019与Code::Blocks上运行通过,若在VC++6.0不可通过请自行调试

实训5分支结构程序设计

/*
时间:2020.11.30
*/

#include<stdio.h>

void C5_1(void);
void C5_2(void);

int main(void)
{
	printf("C5_1:\n");
	C5_1();

	printf("\nC5_2:\n");
	C5_2();

	return 0;
}

void C5_1(void)
{
	int x, y;

	scanf("%d", &x);
	/*
	错误解析:
	scanf("%d", x);		//error
	缺少&符号
	*/
	if (x < 0)
	{
		y = x + 5;
	}

	else if (0 <= x && x < 10)	//不能写成0 <= x < 10,编译时只判断 0 <= x
	/*
	错误解析:
	else if(x < 10)		//error
	x的范围应在[0,10)之间,题目的范围知识小于10
	故应使用&&,&&为“逻辑与运算符”,运算法则为:A&&B,A和B同时成立则表达式(A&&B)才成立
	0 <= x && x < 10成立即为x同时大于等于0且小于10
	*/
	{
		y = x^2 - x + 3;
	}

	else
	{
		y = 4 * x - 7;
		/*
		else y = 4x - 7;		//error
		4x在C语言中不是4*x的意思,在C语言中*不能够省略
		*/
	}

	printf("y = %d", y);
}

void C5_2(void)
{
	int a = 2, b, c;

	if (a > 1)
	{
		b = 1;
		c = 3;
	}
	/*
	错误解析:
	if(a > 1)
	b = 1; c = 3;		//error
	问题在于if的范围
	if不加{}则默认控制一个语句
	上式等价于:
	if(a > 1)
	{
		b = 1;
	}
	c = 3;
	可以看到c = 3;这个语句不在if里面故错误需加上{}
	*/
	else
	{
		b = 2;
	}
	printf("%d %d", b, c);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值