谭浩强C语言程序设计代码示例第5章(笔记)

谭浩强C语音程序设计代码示例第四章(新手入门笔记)

第一章包含参考书,在线编译工具,代码,注释等。

遵循共享互助原则

谭浩强C语言程序设计代码示例(1-3章)

谭浩强C语言程序设计代码示例第4章(笔记)

#include <stdio.h>
/*----------------------------(第五章 分支结构程序)--------------------------*/
/****************************************************************************
运算符:
	1)关系运算符为双目运算符(左结合性);
	2)&&(与运算)与||(或运算)为双目运算符,!(非运算)为单目运算符;
	3)? : 条件运算符为三目运算符,表达式形式一般为——>表达式1?表达式2:表达式3 
*****************************************************************************/
#if 1
/*eg5.1,求各种关系运算符的值,p78*/
int main(void)
{
	char c = 'k';
	int i = 1,j = 2,k = 3;
	float x = 3e+5,y = 0.85;
	printf("%d,%d\n",'a'+5<'c',-i-2*j>=k+1);//'a'+5为'e'大于'c'为假0,-1-2*2=-5 <= 3+1=4为假0
	printf("%d,%d\n",1<j && j<5,x-5.25<=x+y);//应将 1<j<5 改写为 1<j && j<5(与运算)否则会报警告。
	printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);//0,0 均为假
	return 0;
}
#endif 

#if 0
/*eg5.2,逻辑表达式运用,p79*/
/*遵循左结合性*/
int main(void)
{
	char c = 'k';
	int i = 1,j = 2,k = 3;
	float x = 3e+5,y = 0.85;
	printf("%d,%d\n",!x*!y,!!!x);
	printf("%d,%d\n",x||i&&j-3,i<j&&x<y);
	//printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);//会有告警,修改如下,判断左右两式是否相等应用 “==”
	printf("%d,%d\n",i==5&&c&&(j==8),x+y||i+j+k);
	return 0;
}
#endif

/******************************************************************
if语句的三种形式:
		1)  if(表达式) 语句;
		2)  if(表达式)
				语句1;
		    else
		    	语句2;
		3)  if(表达式1)
				语句1;
		    else if(表达式2)
		     	语句2;
		    else
		     	语句3;
*******************************************************************/
#if 0
/*eg5.3,if(表达式) 语句;,p80*/
int main(void)
{
	int a,b,max;
	printf("\n input two numbers:\n");
	scanf("%d %d",&a,&b);
	max = a;
	if(max < b) max = b;
	printf("max = %d",max);
	return 0;
}
#endif

#if 0
/*eg5.4,if else语句,p81*/
int main(void)
{
	int a,b;
	printf("input two numbers:\n");
	scanf("%d %d",&a,&b);
	if(a > b)
	  	printf("max = %d\n",a);
	else
	  	printf("max = %d\n",b);
	return 0;
}
#endif

#if 0
/*eg5.5,if elseif else语句,p82*/
int main(void)
{
	char c;
	printf("input a character:\n");
	c = getchar();
	if(c < 32)								//输入 回车或TAB
		printf("这是一个控制字符\n");
	else if (c >= '0' && c <= '9')			//输入 2 3 4
		printf("这是一个数字\n");
	else if (c >= 'A' && c <= 'Z')			//输入 B C D
		printf("这是一个大写字母\n");
	else if (c >= 'a' && c <= 'z')			//输入 b c d
		printf("这是一个小写字母\n");
	else									//输入 / * -
		printf("这是一个其他字符\n");
	return 0;
}
#endif

/****************************************************************
if语句的嵌套:
		if(表达式1)
			if(表达式2)
				语句1;
			else
				语句2;
		else
			语句3;
*****************************************************************/
#if 0
/*eg5.6,if嵌套,p84*/
/*比较两个数大小*/
int main(void)
{
	int a,b;
	printf("please input A,B:");
	scanf("%d %d",&a,&b);
	if(a != b){
		if(a>b){
			printf("A>B\n");
		}
		else {
			printf("A<B\n");
		}
	}
	else {
		printf("A=B\n");
	}
	return 0;
}
#endif

#if 0
/*eg5.7,比较两个数大小,P84*/
int main(void)
{
	int a,b;
	printf("任意输入两个数:\n");
	scanf("%d %d",&a,&b);
	if(a == b)
		printf("A=B\n");
	else if (a > b)
		printf("A>B\n");
	else
		printf("A<B\n");
	return 0;
}
#endif

#if 0
/*eg5.8,条件表达式,p85*/
int main(void)
{
	int a,b,max;
	printf("\n输入任意两个数:\n");
	scanf("%d %d",&a,&b);
	max = a > b ? a : b;//条件表达式形式:表达式1?表达式2:表达式3
	/*分析:倘若表达式1的结果为真,则输出表达式2的结果,反之输出表达式3的结果*/
	printf("max = %d\n",max);
	return 0;
}
#endif

/***************************************************************************************
注意:在Switch语句中最需要注意的就是break与continue的作用和区别:
		1)共同点:两者都是用于终止循环的;
		2)break:终止循环,结束当前选择的语句,跳出循环体(例如本示例中跳出switch循环),后面的
			    语句不在执行;
		3)continue:终止循环,跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定
				   (不跳出循环体,一般常见于while循环或for循环)。
		4)return:也是用于终止循环的,执行return操作,直接返回函数,所有该函数体内的代码(包括
				 循环体)都不会再执行。
		参考文献:http://985.so/b026u
****************************************************************************************/
#if 0
#if 0
/*eg5.9,switch选择语句,p86*/
/*因为没有终止语句,因此后面的需要全部执行*/
int main(void)
{
	int a;
	printf("input integer number:\n");
	scanf("%d",&a);
	switch (a) {
	case 1:printf("MOnday\n");
	case 2:printf("Tuesday\n");
	case 3:printf("Wednesday\n");
	case 4:printf("Thursday\n");
	case 5:printf("Friday\n");
	case 6:printf("Saturday\n");
	case 7:printf("Sunday\n");
	default:
		printf("error\n");
	}
	return 0;
}
#else
/*eg5.10,带有终止语句的switch语句,p86*/
int main(void)
{
	int a;
	printf("input integer number:\n");
	scanf("%d",&a);
	switch (a) {
	case 1:printf("MOnday\n");break;//注意break和continue用法的区别,(两者都是用于终止循环的)
	case 2:printf("Tuesday\n");break;
	case 3:printf("Wednesday\n");break;
	case 4:printf("Thursday\n");break;
	case 5:printf("Friday\n");break;
	case 6:printf("Saturday\n");break;
	case 7:printf("Sunday\n");break;
	default:
		printf("error\n");
	}
	return 0;
}
#endif
#endif

#if 0
/*eg5.11,输入三个整数,输出最大数和最小数,p87*/
int main(void)
{
	int a,b,c,max,min;
	printf("input three numbers:\n");
	scanf("%d %d %d",&a,&b,&c);
	if(a>b){
		max = a;
		min = b;
	}
	else {
		max = b;
		min = a;
	}
	if(max < c)
		max = c;
	else{
	 	if(min > c){
		 	min = c;
		 }
	}
	printf("max = %d,min = %d\n",max,min);
	return 0;
}
#endif

#if 0
/*eg5.12,四则运算,p88*/
int main(void)
{
	float a,b;
	char c;
	printf("input expression: a+(-,*,/)b \n");
	scanf("%f %c %f",&a,&c,&b);
	switch (c) {
	case '+':printf("%f + %f = %f\n",a,b,a+b);break;
	case '-':printf("%f - %f = %f\n",a,b,a-b);break;
	case '*':printf("%f * %f = %f\n",a,b,a*b);break;
	case '/':printf("%f / %f = %f\n",a,b,a/b);break;
	default:
		printf("input error\n");
	}
	return 0;
}
#endif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值