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

输入输出

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(表达式)  //表达式:做判断的条件

    {

        语句

    }//复合语句

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

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

流程图:

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

形式2:

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

    {

        语句1

    }else

         {

              语句2

         }

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

流程图:

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

形式3:

  if(表达式1)

    {

        语句一

    }else if(表达式2)

     {

     }else if()

     ……

     else

    {

    }

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

流程图:

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

注意:

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后面是常量表达式 不能出现变量

流程图:

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

作业

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

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

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

#include 

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实现一下

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

#include

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;
  }

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

你可能感兴趣的:(c语言,算法,学习)