首页 > 其他分享 >嵌入式开发之C语言学习笔记day2

嵌入式开发之C语言学习笔记day2

时间:2024-11-21 20:46:11浏览次数:3  
标签:语句 int day2 嵌入式 break while 循环 printf C语言

学习目标:流程控制语句

顺序结构

1. 顺序结构是程序默认的执行流程;
2. 顺序结构是从上而下依次运行的。

分支结构

if语句

作用:如果满足条件,才可以运行指定的代码。
使用场景:某些代码,在满足的条件下才执行。
格式1如下:

#include<stdio.h>
int main(){
	/*
		if 的格式:
			if(关系表达式)
			{
				语句体;
			}
	*/
	int temp;
	if (temp > 37.5)
	{
		printf("警报");
	}
	return 0;
}
// 细节1:如果大括号里面的语句体只有一行,那么大括号可以省略不写(了解一下)
// 推荐 一定要写一下

格式2如下:

#include<stdio.h>
int main(){
	/*
		if 的格式:
			if(关系表达式)
			{
				语句体A;
			}
			else
			{
				语句体B;
			}
	*/
	int temp;
	if (temp > 37.5)
	{
		printf("警报");
	}
	else
	{
		printf("安全");
	}
	return 0;
}

例题:
有一天胖虎考完试回来,妈妈根据他的分数给与相应的奖励:

  • 奖励自行车一辆 95-100
  • 奖励游乐场玩一天 90-94
  • 奖励变形金刚一个 80-89
  • 奖励棒槌一个 80以下
#include <stdio.h>
int main(){
    int score;
    printf("请输入胖虎的考试分数score:");
    scanf("%d", &score);
    if (score < 0 || score>100)
    {
        printf("该分数超出范围");
    }
    else if (score >= 95 && score<=100)
    {
        printf("奖励一辆自行车");
    }
    else if (score >= 90 && score <=94)
    {
        printf("奖励游乐场玩一天");
    }
    else if (score >=80 && score<=89)
    {
        printf("奖励变形金刚一个");
    }
    else
    {
        printf("胖揍一顿");
    }
    return 0;
}

注意: 为了代码逻辑完整性,必须考虑分数不在0-100区间的情况。

switch语句

作用: 把所有的选择一一列举出来,根据不同条件任选其一。
格式如下:

switch(表达式){
	case 值1:
		语句体1;
		break;
	case 值2:
		语句体2;
		break;
	...
	default:
		语句体n;
		break;
	}

细节说明:

  1. 表达式:计算结果只能是(字符/整数)
  2. case:值只能是(字符/整数)的字面量,不能为变量且值不能重复哦
  3. break:表示中断,结束switch语句
  4. default:所有情况都不匹配,执行该处的语句内容

案例:我的朋友家喜欢吃鸡,作为作者的我劝都劝不住啊,刚好他家有7道鸡的菜品,以下是他家吃菜的安排:

  • 周一:辣子鸡
  • 周二:麻辣鸡
  • 周三:椒麻鸡
  • 周四:可乐鸡
  • 周五:剁椒鸡
  • 周六:香酥鸡
  • 周日:肯德基
#include <stdio.h>

int main(){
    int week = 1;
    switch (week)
    {
    case 1:
        printf("辣子鸡");
        break;
    case 2:
        printf("麻辣鸡");
        break;
    case 3:
        printf("椒麻鸡");
        break;
    case 4:
        printf("可乐鸡");
        break;
    case 5:
        printf("剁椒鸡");
        break;
    case 6:
        printf("香酥鸡");
        break;
    case 7:
        printf("肯德基");
        break;
    default:
        printf("没有这个星期");
        break;
    }
    return 0;
}

循环结构

  开始条件       结束条件        控制开关
     1             10             +1
  初始化语句   条件判断语句     条件控制语句    循环体语句

for循环

/*
for(初始化语句;条件判断语句;条件控制语句)
{
	  我  是  小程同学
		循环体语句
}
*/
#include <stdio.h>
int main(){
	int i;
	for(i=1; i<=5; i++)
	{
		printf("我是小程同学\n");
	}
	return 0;
}

输出:
我是小程同学
我是小程同学
我是小程同学
我是小程同学
我是小程同学
案例: 我的朋友遇到了个小问题,他想快速计算随意两个数范围之间的既能被6整除又能被8整除的数的个数,我觉得他说的话有点绕口,所以我简洁的捕捉到他的条件:
- 用户输入两个数a,b
- 遍历在a和b之间的数num
- 找到既满足num%60,又满足num%80
- 计算符合条件的数的个数

#include <stdio.h>
int main(){
    int num1, num2;
    int c=0;
    printf("请输入两个数:");
    scanf("%d %d", &num1, &num2);
    if (num1 > num2){
        for(num2; num2<num1; num2++){
            if((num2%6==0) && (num2%8==0)){
                c+=1;
            }
        }
    }
    else{
        for(num1; num1<num2; num1++){
            if((num1%6==0) && (num1%8==0)){
                c+=1;
            }
        }
    }
    printf("%d\n", c);
	return 0;
}

while循环

/*
初始化语句
while(条件判断语句)
{
	循环体语句
	条件控制语句
}
*/

#include <stdio.h>
int main(){
    int i = 1;
    while (i <= 3)
    {
        printf("我是小程同学\n");
        i++;
    }
	return 0;
}

for和while的区别

相同点: 运行规则是一样的
区别:

  • for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
  • while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束厚,该变量还可以继续使用

使用的条件区别:

  • for循环中:知道循环次数或者循环的范围
  • while循环:不知道循环的次数和范围,只知道循环的结束条件

例子:请用c写一个回文数判断程序(回文数是正序和倒序都是一样的数)

#include <stdio.h>
// 回文数
int main(){
    int num, num1;
    int temp;
    int rev = 0;
    printf("请输入一个数:");
    scanf("%d", &num);
    num1 = num;
    while (num != 0)
    {
        temp = num % 10;
        num = num /10;
        rev = rev *10 + temp;
    }
    if (rev == num1)
    {
        printf("%d是回文数\n", num1);
    }
    else
    {
        printf("%d不是回文数\n", num1);
    }
	return 0;
}
//注意:num必须通过变量提前赋值出来,不然后续直接采用num的值一定是经过while循环处理过的,num==0,导致判断一直报错。

循环语句(高级)

跳转控制语句

作用: 在循环的过程中,跳到其他语句上执行。

break  不能单独书写,只能卸载switch,或者循环中,表示结束跳出的意思。
continue 只能写在循环中,表示跳出本次循环,继续执行下次循环。
#include <stdio.h>
// 寻找1-100中第一个既能被6整除也能被5整除的数
int main(){
    int i = 1;
    for (i;i<=100;i++){
        if(i%6==0 && i%5==0){
            printf("%d", i);
            break;
        }
    }
    
	return 0;
}

标签:语句,int,day2,嵌入式,break,while,循环,printf,C语言
From: https://blog.csdn.net/weixin_46281529/article/details/143941487

相关文章

  • C语言 蓝桥杯某例题解决方案(查找完数)
    蓝桥杯原题: 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。这个题没有很大的难点,与我们上一个解决的问题“质因数分解”不同,它不需要判断因数是否是质数,因此我们的工作量会小很多。现在我们的想法还是类似,首先找到......
  • C语言,如何进行多次分割,获取的到多个字符串,组成一个数组
    如"A|B|C|D"根据|分割,得到数组["A","B","C","D"]char*propertyArr[4]={"-1","-1","-1","-1"};custom_string("A|B|C|D","|",propertyArr,4);voidc......
  • 排序算法(选择排序、直接插入排序、冒泡排序、二路归并排序)(C语言版)
    对数组进行排序,主要演示选择排序、直接排序、冒泡排序、二路归并排序算法,附上代码演示一、编写好各类排序方法的函数(1)s_sort(inte[],intn):选择排序。(2)si_sort(inte[],intn):直接插人排序。(3)sb_sort(inte[],intn):冒泡排序。(4)merge(inte[],intn);二路归并排序......
  • 字符串的基本操作(C语言版)
    字符串的判断、查找字符串并返回查找结果一、编写函数:采用顺序结构存储串,编写一个函数substring(strl,str2),用于判定str2是否为strl的子串;编写一个函数,实现在两个已知字符串中找出所有非空最长公共子串的长度和最长公共子串的个数;二、代码演示:1、字符串匹配的源代码:#......
  • C语言分支与循环
    引言C语言是结构化的程序设计语言。结构化的程序通常包括数据的描述和操作的描述两方面的内容,结构指的是顺序结构、选择结构、循环结构。算法广义上来讲,算法是解决某一问题的方法和步骤,狭义的算法是对特定问题求解步骤的一种描述。算法的特性和要素:算法的特性有穷性确定......
  • 【C语言】自编码器
    描述一下你对自编码器的理解,包括变分自编码器和生成对抗自编码器等。 自编码器(Autoencoder,AE)是一种无监督学习模型,主要用于数据压缩和特征学习。它的基本思想是通过一个编码器网络将输入数据压缩成低维潜在向量,然后通过一个解码器网络尝试从这个潜在向量重构出原始输入。如......
  • 递归之美:C语言中的函数递归
      在编程的世界中,函数递归是一个强大且优雅的概念,它允许一个函数自我调用以解决问题。这种自我调用的特性使得递归在解决某些问题时变得特别高效和直观。本文将深入探讨函数递归的概念、应用以及需要注意的事项。一、递归是什么?        递归是学习C语⾔函数绕不开......
  • c语言中的鞍点问题(详细版)
    1、什么是鞍点什么是鞍点?    鞍点鞍点,就是类似马鞍一样规律的点,即在一个矩阵中是每一行的最大值并且是每一列的最小值。 (无论多大的矩阵,如果存在鞍点,则只有一个,否则不存在鞍点,至于为啥,建议谷歌)2、找出鞍点的思路找出鞍点的思路 需要我们利用枚举数组(ps:不是高深......
  • 【C语言的奥秘3】C语言中的控制语句第二弹
    一、循环语句1、while循环(1)、while循环的执行流程while循环是当条件成立时进入循环体,当条件不成立则结束,不在进入到循环当中去。值得注意的是,while循环在第一次执行时,会先判断循环条件是否为真。如果条件为真,则进入循环体执行语句;如果条件为假,则跳过循环体,直接执行循环后......
  • C语言常用语句总结
    一:常用函数1、putchar函数:putchar函数(字符输出函数):向终端输出一个字符。一般形式为:        putchar(c)  //   输出字符变量c的值。        ==    printf(“%c”,c)2、getchar函数getchar函数(字符输入函数):从终端输入一个字符。getchar函数没......