努力学习嵌入式的第五天,目标成为一个大牛!

发布时间:2024年01月21日

输入输出

int ret = scanf("%f%f%f",&a,&b,&c);? 把读入的数值返回给ret 如果输入三个数 则打印出三个数并印出ret=3。

总结

今天主要学习了分支结构中的关系运算、逻辑运算中的的逻辑运算表达式还有三种if语句以及条件运算符、switch语句 同时对自己程序的编写有了更好的学习和锻炼。

一、流程控制

流程

1.顺序流程

? 顺序流程是c语言中最基本的控制结构之一,是按照代码的顺序一行一行执行代码,没有任何分支和循环。

2.分支结构(选择)

关系运算

选择 ------ 判断

判断 ----- 通过运算基于判断 ------ 做出选择(构出判断的条件)?

条件:

关系运算(大小关系)> >= < <= == !=

关系运算的结果:真(1) 假(0)

? 注意:c语言中不存在布尔类型 关系运算结果用整型类型保存

逻辑运算
与:&& (优先级11)

? 规则:一家则假

? &&运算截断特性(短路特性)

int a=2,b;

b=(1>2)&& a++ ;由于(1>2)输出结果为:b=0,a=2? 因为(1>2)为假后面的运算不执行。

或:|| (优先级12)

? 规则:一真则真

? ||运算也有截断特性 如果第一个为1则后面的式子不执行运算。

非:! (优先级2)

? 规则:真假相对

? 逻辑运算用来组合多个关系

语句

句法格式(语义)

形式1:

? if(表达式)? //表达式:做判断的条件

? ? {

? ? ? ? 语句

? ? }//复合语句

含义:先判断表达式的真假,是真则运行符合条件的内容,是假则运行不满足条件的程序

注意:条件后面不要加分号

流程图:

形式2:

??if(表达式)? //表达式:做判断的条件

? ? {

? ? ? ? 语句1

? ? }else

? ? ? ? ?{

? ? ? ? ? ? ? 语句2

? ? ? ? ?}

含义:判断完表达式,如果为真则执行语句1,否则执行语句2

流程图:

形式3:

? if(表达式1)

? ? {

? ? ? ? 语句一

? ? }else if(表达式2)

? ? ?{

? ? ?}else if()

? ? ?……

? ? ?else

? ? {

? ? }

注意:二次判断需要在else后面加 if

流程图:

注意:

1.不存在单独的else语句,每个else一定有一个if与之对应

2.else与if匹配一定是从里面开始匹配,else与最近的前面的if匹配

条件运算:

表达式1?表达式2:表达式3

判断表达式1,真就执行表达式2,假的话执行表达式3

Switch
形式:

switch(表达式)? //整形表达式

{

? ? ?case 常量表达式:

? ? ? ? ? ? ? ?语句;

? ? ? ? ? ? ? ?break;

? ? ?case 常量表达式:

? ? ? ? ? ? ? ?语句;

? ? ? ? ? ? ? ?break;

? ? ?case 常量表达式:

? ? ? ? ? ? ? ?语句;

? ? ? ? ? ? ? ?break;

? ? ?case 常量表达式:

? ? ? ? ? ? ? ?语句;

? ? ? ? ? ? ? ?break;

? ……

? ? ? ? default:

? ? ? ? ? ? ? ? ?语句;

? ? ? ? ? ? ? ? ? break;

}

含义:

求解表达式 根据结果匹配下面case后面的? 匹配对应上之后则执行case下的语句? 直到遇到了break或者switch的右大括号

注意:

1.switch 后面表达式需要一个整型表达式

2.case后面是常量表达式 不能出现变量

流程图:

作业

1.百分制度 --- 等级制 switch实现 学生成绩:

90-100 --- A? 80-89 --- B? 70-79 --- C? 60-69 --- D? ?<=59 --- E

#include <stdio.h>

int main (void)
{
    float num;
	int x;

	printf("输入学生的成绩:\n");
	scanf("%f",&num);
	
	if(num<=100 && num>=0)
	{
		x = num/10;
		switch (x)
		{
		case 10:
		case 9:
			printf("A\n");
			break;
		case 8:
			printf("B\n");
			break;
		case 7:
			printf("C\n");
			break;
		case 6:
			printf("D\n");
			break;
		default:
			printf("E\n");
		}

	}else
		printf("您的成绩无效!\n");

	return 0;
}

2. 获取月份的天数 switch实现一下

#include<stdio.h>

int main(void)
{
	int y,x;

    printf("输入日期:\n");
    scanf("%d%d",&y,&x);     
    if(x>0 && x<=12)
    {
        if((y%4==0 && y%100!=0 || y%400==0) && (x == 2))
        {
            printf("29\n");
                  
		}else
          switch(x)
          {
          case 4:
          case 6:
          case 9:                                                                                                                                                                  
          case 11:
	          printf("30\n");
              break;
          case 2:
              printf("28\n");
              break;
          default:
              printf("31\n");
              break;
          }
      }else
  
          printf("日期无效!\n");
  
      return 0;
  }

加油!努力做到更好 相信自己!

文章来源:https://blog.csdn.net/2201_75392588/article/details/135690261
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。