嵌入式学习笔记-C语言基础-C程序设计的基本结构-C语句的分类-复杂格式化输出符

目录

1、算法的特征

2、顺序结构

3、选择结构

4、循环结构

5、语句的分类

6、复杂格式化输出符


数据结构 + 算法 = 程序

算法是程序的灵魂

1、算法的特征

        1:有穷性;包含有限的操作步骤,不能无限制地执行下去;

        2:可行性;算法中的每一条指令必须是切实可执行的;

        3:确定性;算法中的每一条指令必须有确切的含义,不能产生歧义:

举例:计算:s = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10

可以使用三种循环结构进行计算,也可以使用等差数列的求和公式来计算

#include<stdio.h>

int main()
{
	//for循环实现计算
	int sum=0;
	for(int i=0;i<=10;i++)
		sum += i;
	printf("for循环实现结果:%d\n",sum);
	sum = 0;
	//while循环实现该计算
	int i = 0;
	while(i<=10)
	{
		sum += i;
		i++;
	} 
	printf("while循环实现结果:%d\n",sum);
	sum = 0;
	i = 0;
	//do-while循环实现该计算
	do
	{
		sum += i;
		i++;
	}while(i<=10);
	printf("do-while循环实现结果:%d\n",sum);
	sum = 0; 
	//使用等差数列求和公式来实现
	sum = (1 + 10) * 10 / 2;
	printf("差数列求和公式实现结果:%d\n",sum);
	return 0;
} 

2、顺序结构

        各操作是按先后顺序执行的。是最简单的一种基本结构。

其中A和B两个框是顺序执行的。即在完成A框所指定的操作后,必然接着执行B框所指定的操作。

#include <stdio.h>
 
int main() {
    // 打印一个消息
    printf("Hello, World!\n");
 
    // 声明一个变量
    int number = 10;
 
    // 打印变量的值
    printf("The value of number is: %d\n", number);
 
    // 返回成功状态码
    return 0;
}

这段代码首先引入了标准输入输出库stdio.h,这是使用printf函数输出时需要的。然后在main函数中,先后执行了三个步骤:打印一个欢迎消息,声明并初始化一个变量,然后打印这个变量的值。最后,程序以返回值0结束,表示执行成功。这是C语言中最基本的顺序结构代码

3、选择结构

        又称分支结构。根据是否满足给定条件而从两组操作中选择执行一种操作。虚线框内是一个选择结构。

        (1)、无论P条件是否成立,只能执行A操作或B操作中的一个;

        (2)、无论执行完哪一个分支后,就结束了;

        (3)、两个操作可以有,另一个是空操作;

#include <stdio.h>
 
int main() {
    int number;
 
    printf("请输入一个数字: ");
    scanf("%d", &number);
 
    if (number > 0) {
        printf("这是一个正数。\n");
    } else if (number < 0) {
        printf("这是一个负数。\n");
    } else {
        printf("这是零。\n");
    }
 
    return 0;
}

这段代码首先会提示用户输入一个数字,然后根据输入的数字是正数、负数还是零,使用if-else结构来执行不同的操作。如果输入的数字大于0,它会打印出“这是一个正数”;如果输入的数字小于0,它会打印出“这是一个负数”;如果输入的数字是0,它会打印出“这是零”。

4、循环结构

        又称重复结构,即在一定条件下,反复执行某一部分的操作。有两种类型:

循环结构的类型
名称当型循环直到型循环
流程图

执行过程当给定条件P成立时,执行S操作,然后再判断P条件是否成立,如果仍成立,再执行S操作,然后再判断..,如此反复,直到某一次P条件不成立为止,此时不再执行S,结束循环。执行S操作,然后判断条件P是否成立,如果成立,再执行S操作,然后再判断,..…,如此反复,直到某一次P条件不成立不再执行S,结束循环。
特点先判断,后执行,S有可能一次也不执行先执行,后判断,S最少要执行一次。
#include<stdio.h>

int main()
{

//当型循环(while循环或者for循环):只要条件为真,
//循环就会继续。循环中的代码块会被重复执行,直到条件变为假
    int i = 0;
    while(i < 5) {
        printf("%d\n", i);
        i++;
    }
//直到型循环(Do-While循环):条件在循环体的末尾检查,
//所以循环体至少执行一次,然后再判断条件是否为真。
//如果条件为真,循环会再次执行,否则循环结束
    int j = 0;
    do {
        printf("%d\n", j);
        j++;
    } while(j < 5);
    return 0;
}

5、语句的分类

1.控制语句:  选择结构和循环结构, 改变程序执行顺序的关键字
        选择语句:if语句,switch语句
        循环语句:for, while, do...while
        改变程序执行顺序的关键字:
            return
            continue
            break
            goto
2.函数的调用    
        login();  
3.表达式语句    
        23+89;
        a * 23 / b;
4.空语句
        ;
5.复合语句:   用大括号将某些代码行扩起来,作为一个整体,这个整体称为复合语句
        特点:
            1,限定变量的作用范围
            2.复合语句中的变量和其他变量重名时,采用就近原则

6、复杂格式化输出符

        1、整数

                %d        :将整型数据对应的格式化符
                %md        :m是一个正整数,用m个空间显示数据,如果数据长度不够m个,就在前面补空格(右对齐);如果超过,m不起作用,数据原样输出
        2、字符串
                %s        :将字符串显示到屏幕上--字符串对应的格式化符
                %ms        :m是一个正整数,用m个空间显示数据,如果数据长度不够m个,就在前面补空格(右对齐);如果超过,m不起作用,数据原样输出
                %m.ns    :m代表显示占用的空间, n表示取数据前n个字符
                        取字符串前n个字符,如果m比n小,此时m不起作用,n个字符原样输出(左对齐)
                        取字符串前n个字符,如果m比n大,就在n个字符前补空格,占满m个空间(右对齐)
                %-m.ns    :-代表在字符右侧补空格(左对齐),m代表显示占用的空间, n表示取数据前n个字符
                        取字符串前n个字符,如果m比n小,此时m不起作用,n个字符原样输出
                        取字符串前n个字符,如果m比n大,就在n个字符后补空格,占满m个空间(左对齐)    
                %.ns    :n表示取数据前n个字符
                        取字符串中前n个字符显示(左对齐)

        3、浮点型数据

                %f        :数据的小数点后默认保留6位(左对齐),如果数据小数部分超过6位,就四舍五入
                %.nf    :n是一个正整数,表示小数点后保留n位(四舍五入)   --左对齐
                %m.nf   :m,n都是正整数,m表示空间(小数点也占1个空间),n表示保留小数点后n位(四舍五入);
                        如果数据保留n小数点后n位的结果比m小,就在数据的左侧补空格(右对齐)
                        如果数据保留n小数点后n位的结果比m大,m就不起作用,数据正常显示(左对齐)
                %-m.nf    :m,n都是正整数,m表示空间(小数点也占1个空间),n表示保留小数点后n位(四舍五入)
                        如果数据保留n小数点后n位的结果比m小,就在数据的右侧补空格(左对齐)
                        如果数据保留n小数点后n位的结果比m大,m就不起作用,数据正常显示(左对齐)算法中的每一条指令必须是的每一条指令必须有确切的含义,不能产生

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值