C语言学习笔记(自用)第四章

第四章 选择结构程序设计

C语言有两种选择语句:(1)if语句,用来实现两个分支的选择结构;(2)switch语句,用来实现多分支的选择结构。
例:

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c,x1,x2,disc,p,q;
	scanf("%lf%lf%lf",&a,&b,&c);//输入双精度浮点型变量的值要用格式声明%lf
	disc=b*b-4*a*c;//disc是判别式(b*b-4ac)
	if(disc<=0)//若b2-4ac<0
	{
		printf("傻逼算不出来\n");//无解
	}
	else//b2-4ac>=0
	{
		p=-b/(2*a);
		q=sqrt(disc)/(2*a);
		x1=p+q;//求这两个解
		x2=p-q;
		printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);//输出两个解
	}
	return 0;
}


if语句的一般形式

(1)if(表达式)语句1 (没有else子句部分)
(2)if(表达式) (有else子句部分)
              语句1
         else
              语句2
(3)if(表达式1)    语句1    (在else部分又嵌套了多层的if语句)
         else if(表达式2) 语句2
         else if(表达式3) 语句3

#include<stdio.h>
#include<math.h>
int main()
{
	printf("1:一次存五年期。\n2:先存两年期,到期后将本息在存三年期.\n3:先存三年期,到期后将本息再存两年期。\n4:存一年期,到期后将本息再存一年期,连续存五次。\n5:存活期存款,活期利息每一季度结算一次。\n你的选择是:");
	int a,n1,n2;
	n1=2;
	n2=3;
	//m=1000;
	double P,P1;
	scanf("%d",&a);
	//printf("%d\n",a);
	if(a==1)
	{
		P=1015;//1000*(1+0.015);
		printf("连本带利:%f\n",P);
	}
	else if(a==2)
	{
		P1=1000*(1+2*0.021);
		P=P1*(1+3*0.0275);
		printf("连本带利:%f\n",P);
	}
	else if(a==3)
	{
		P1=1000*(1+3*0.0275);
		P=P1*(1+2*0.021);
		printf("连本带利:%f\n",P);
	}
	else if(a==4)
	{
		P1=pow(1.015,5);
		P=1000*P1;
		printf("连本带利:%f\n",P);
	}
	else if(a==5)
	{
		P1=pow(1.000875,20);
		P=1000*P1;
		printf("连本带利:%f\n",P);
	}
	else
	{
		printf("没有\n");
		
	}
		//printf("连本带利:%f\n",P);
	//return 0;
}//if和else是两种情况
//if和else和else if是三种情况

运算逻辑符和逻辑表达式

&&与
||或
!非

ab!a!ba&&ba或b

逻辑运算真值表

ab!a!ba&&ba或b
非0非00011
非000101
0非01001
001100

用switch语句实现多分支选择结构

形如:

switch(表达式)
{
	case 常量1:
	语句1case 常量2:
	语句2case 常量n:
	语句n;
	defaule:语句n+1}

用switch语句处理菜单命令,假如输入A或a,执行A操作;输入B或a,执行B操作。

#include<stdio.h>
int main()
{
	void action1(int,int),action2(int,int);//函数声明
	char ch;
	int a=15,b=23;
	ch=getchar();
	switch(ch)
	{
		case'a':
		case'A': action1(a,b);break;//调用action1函数,执行A操作
		case'b':
		case'B': action2(a,b);break;//调用action2函数,执行B操作
		dafult:putchar('\a');//如果输入其他字符,发出警告
	}
	return 0;
}
void action1(int x, int y)
{
	printf("x+y=%d\n",x+y);
}
void action2(int x,int y)
{
	printf("x*y=%d\n",x*y);
}

判断2000-2500年的闰年和非闰年

#include<stdio.h>
int main()
{
	int a;
	int year,b=2500;
	for(year=2000;year<=2500 ; year++)
	{
		if(year%400==0)
			a=1;
		else 
		{
			if(year%4==0&&year%100!=0)
				a=1;
			else 
				a=0;
		}
		if(a==1)
		{
			printf("%d 此年为闰年\n",year);
		}
		else
		{
			printf("%d 此年不是闰年\n",year);
	}
	}
	return 0;
}

判断条件:普通年份除以4余数为0,世纪年除以400余数为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值