单分支结构、双分支结构、多分支结构

一、程序的三种结构

1.顺序结构:一步接着一步的做

2.分支结构:根据选择条件进行判断下一步

3.循环结构:一遍一遍重复则

二、分支结构:如何写判断表达式

1.使用关系运算符和逻辑运算符写出判断表达式

a>b:如果a是大于b的,则判断表达式为真,否则为假

0<a<10:写成a>0&&a<10

2.运算符的优先级和结合性
在这里插入图片描述

3.示例

//输入月份,输出该月是第几季度 

#include<stdio.h>
int main()
{
	int a;
	printf("请输入一个月份:");
	scanf("%d", &a);
	switch (a)
	{
	case 3:
	case 4:
	case 5:printf("该月份是春季"); break;
	case 6:
	case 7:
	case 8:printf("该月份是夏季"); break;
	case 9:
	case 10:
	case 11:printf("该月份是秋季"); break;
	case 12:
	case 1:
	case 2:printf("该月份是冬季"); break;
	default:printf("没有这个月份");
	}
}

//输入一名学生的成绩进行评分
#include<stdio.h>
int main(){
    int t;
    scanf("%d",&t);
    if(t>=90 && t<100){
        printf("A");
    }
    else if(t>=80 && t<90){
        printf("B");
    }
   else if(t>=70 && t<80){
        printf("C");
   }
   else if(t>=60 && t<70){
       printf("D");
   }
   else if(t>=0 && t<60){
       printf("E");
    }
}
//根据输入的整数,判断输出的是奇数还是偶数 
#include<stdio.h>
int main()
{
	int a;
	printf("请输入一个数字:");
	scanf("%d",&a);
	if(a%2==0){
		printf("%d为偶数",a);
	}
	else{
		printf("%d为奇数",a);
		
	}
}

//根据输入字母如果不是'y'、'n'输出回答错误,反之输出正确 
#include <stdio.h>
int main()
{
	char answer;
	printf("输入\n");
	answer=getchar();
	if(answer !='y' && answer !='n'){
		printf("错误");	
	}
	else
		printf("正确");
}
//从键盘输入一个年份,判断是否为闰年。
//判断闰年条件:能被4整除同时不能被100整除或者能被400整除。
#include <stdio.h>
int main(){
	int year;
	printf("请输入年份:");
	scanf("%d",&year);
	if(year%4==0&&year%100!=0||year%400==0){
		printf("闰年");
	}
	else{
		printf("平年");
	}
} 

三、单分支结构

1.如果...if(判断表达式)
		语句1;
2.表现形式
	if(判断表达式)
		语句1;
		
	if(判断表达式)
	{
		语句1;
		语句2;
		语句n;
	}
	
	if(判断表达式)
		语句1;
		语句2;
		语句n;
相当于:
	if(判断表达式)
		语句1;
		语句2;
		语句n;

3.示例

//输入两个整数,如果a<b则a与b交换
#include <stdio.h>
int main()
{
	int a,b,t;
	printf("请输入两个数\n");
	scanf("%d%d",&a,&b);
	if(a<b)
	{
		t=a;
		a=b;
		b=t;
	}
	printf("a=%d\nb=%d",a,b);
 }  

四、双分支结构

1.如果......
否则...
if(判断表达式)
	语句
else
	语句

2.表现形式
if(判断表达式)
{
	语句1
	语句2
	语句n
}
else
{
	语句4
	语句5
	语句m
}

注意:if(){}和else{}是一个整体,之间不可以有其他语句

3.示例

五、多分支结构

1.if…else
如果…则
否则 如果…则…

2.表现形式

if(判断表达式1)
{
...
}
else if(判断表达式2)
{
...
}
else 
{
...
}

3.if…else if与if嵌套区分

if(嵌套)
if(判断表达式1)
{
	if(判断表达式2)
	{
	...
	}
	else
	{
	...
	}
}

注意:else与离它最近的上面if配对

4.switch
表现形式

switch(表达式1)
{
	case 常量表达式1:
	代码段2
	break;
	case 常量表达式2:
	代码段2
	break;
	...
	case n:
	break;
	default:
		代码段n+1
		break;
}

注意事项:switch只做入口配对,不做出口检查,必须通过break跳出

5.示例

//给不多于5位的正整数,求它是几位数
#include<stdio.h>
int main(){
	int num,flag;
	
	printf("请输入一个整数:");
	scanf("%d", &num);
	
	if(num/10==0)
		flag=1;
	else if(num/100==0)
		flag=2;
	else if(num/1000==0)
		flag=3;
	else if(num/10000==0)
		flag=4;
	else
	flag =5;
	printf("%d是%d位数",num,flag);	 
} 
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值