【C语言%的多种用法】

news2024/11/16 6:50:58

C语言%的多种用法

  • C语言中%号那些事儿
    • 1、%之取余运算符的使用
    • 2、%之作格式符使用
      • 2.1、C语言格式符
    • 3、%之搭配 * 的使用
    • 4、%之搭配 # 的使用
    • 5、客套话

C语言中%号那些事儿

前言:
众所周知:%百分号,在九年义务教育中,表示分数的分母是100的分数之比。即:百分比,如:99%,等价于小数表示为:0.99

那么在我们C语言中%号又有那些值得学习的用途呢?
1.%取余运算符
2.%作格式符使用
3.%搭配*号的作用
4.%搭配#号的作用

1、%之取余运算符的使用

(1)C语言中%最常见的就是作取余运算符,或称为取模运算。
取余简而言之就是取得结果是余数。
(2)值得注意的是,与除法 ‘/’ 不同的是,%取余运算的两边均为整数,不能为小数(浮点数)。
(3) % 取余运算符例程1(请参考注释理解“食用”哦):
代码说明

首先,C语言除法运算:结果是否为整数,是根据除号两边是否为整数进行运算的。 而取余运算:%号两边都必须为整数。

基于VS2019编译器展示一下 代码片

/*例程1.1*/
#include <stdio.h>

int main()
{
	int a1 = 5;
	int a2 = 5.2;
	int b1 = 15;
	int b2 = 15.6;
	printf("%d\n", b2 / a1);//当 '/'号左边为浮点数,右边为整数时,结果为小数
	printf("%d\n", b1 / a2);//当 '/'号左边为整数,右边为浮点数时,结果为小数
	printf("%d\n", b1 / a1);//当 '/'号左边为整数,右边为整数时,结果为整数
	int c = 16;
	printf("%d\n", a1 % b1);//%取余运算(取模运算)--- 两边必须为整数
	printf("%d\n", c % a1);//%取余运算(取模运算)--- 两边必须为整数
	return 0;
}

如图所示
在这里插入图片描述

(4) % 取余运算符例程2(请参考注释理解“食用”哦):
代码说明

C语言中%作取余运算在条件判断中的应用 如:求100以内5的倍数

基于VS2019编译器展示一下 代码片

/*例程1.2*/
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i < 100; i++)
	{
		if (0 == i % 5)//当每次循环的i与题目中关键数5作取余运算,若余数为零说明,就是5的倍数
		//这里就是%号作取余运算符时,经常与条件判断应用
		{
			printf("%d\n",i);
		}
	}
	return 0;
}

如图所示
在这里插入图片描述

2、%之作格式符使用

2.1、C语言格式符

(1)格式符说明:由“%”和小写字母组成,如%d%f等,格式总是由“%”字符开始的。不同类型的数据用不同的格式字符。
作用:是将输出的数据转换为指定的格式输出。

(2)常见格式符如表所示:

格式符格式符功能
%d整形输出
%c输出单个字符
%f输出实数/小数
%o以八进制数形式输出整数
%x以十六进制数形式输出整数
%s输出字符串
%e以指数形式输出实数
%g根据大小自动选f格式或e格式(不输出无意义的零)

(3)% 作格式符使用例程(请参考注释理解“食用”哦):
代码说明

%号作格式符引导符号的作用

基于VS2019编译器展示一下 代码片

/*例程2*/
#include <stdio.h>
int main()
{
	int a = 10;
	char A = 'A';
	char ch[] = "hello";
	float b = 3.14;
	double PI = 3.1415926;
	long long int m = 65535123456789;
	//%号作格式符引导符号的作用
	printf("%d\n",a);//% + d --- 输出十进制
	printf("%c\n", A);//% + c --- 输出字符
	printf("%s\n", ch);//% + s --- 输出字符串
	printf("%f\n",b);//% + f --- 输出浮点数(小数)
	printf("%.2f\n", b);//% + 数字 + f --- 输浮点数并保留小数点后几位数
	printf("%lf\n",PI);//% + lf --- 输出双精度浮点数
	printf("%lld\n",m);//% + lld --- 输出长长整型数
	int* pa = &a;
	printf("%p\n",pa);//% + p --- 输出地址

	return 0;
}

如图所示
在这里插入图片描述

3、%之搭配 * 的使用

说明
(1)主要在 scanf( ) 函数起到了,跳过对应的输入的作用,使得%这次的输入跳过不被输入执行。
(2)在 printf( ) 函数中应用同理,会跳过对应的输出对象。
(3)% 搭配
号的作用例程1(请参考注释理解“食用”哦):
代码说明

先上一道通俗易懂的菜

基于VS2019编译器展示一下 代码片

/*例程3.1*/
#include <stdio.h>
int main()
{
	int a = 100;
	scanf("%*d",&a);//%*跳过了输入的数据
	printf("a = %d\n",a);//仍然打印100
	return 0;
}

如图所示
在这里插入图片描述

(4)% 搭配*号的作用例程2(请参考注释理解“食用”哦):
代码说明

多个scanf()函数输入参数的例程

基于VS2019编译器展示一下 代码片

/*例程3.2*/
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %*d %d",&a,&b,&c);// %*号作用是跳过输入的数据
	printf("a = %d\n",a);
	printf("b = %d\n",b);//跳过后b 保存的就是c输入的数据了
	printf("c = %d\n",c);//c默认补0
	return 0;
}

如图所示
在这里插入图片描述

4、%之搭配 # 的使用

说明
(1)主要作用:使输出保留进制的前缀符号
(2)以8进制为例,保留进制符号017;以16进制为例,保留进制符号0x17(x为小写)
(3)% 搭配#号的作用例程(请参考注释理解“食用”哦):
代码说明

建议在学习了八进制和十六进制的格式后食用

基于VS2019编译器展示一下 代码片

/*例程4*/
#include <stdio.h>

int main()
{
	int a = 015;
	int b = 0xab;
	printf("a1 = %o\n",a);
	printf("a2 = %#o\n",a);
	//%#+对应的进制字母,就可以保留进制的前缀符号了
	//这里显而易见都能看懂,就不过多撰述了
	printf("b1 = %x\n",b);
	printf("b2 = %#x\n",b);
	return 0;
}

在这里插入图片描述

5、客套话

倘如各位看官觉着本文的菜,足以开胃,还请动动金手指,一件三连吸引更多客官,谢谢您勒!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片识别文字怎么做?这几种方法轻松解决

在现代社会&#xff0c;图片已经成为人们日常生活和工作中不可或缺的一部分。但是&#xff0c;由于图片中往往包含了大量的文字信息&#xff0c;如果要手动输入这些文字&#xff0c;不仅费时费力&#xff0c;而且容易出错。因此&#xff0c;将图片中的文字进行识别已经成为我们…

应用打包部署k8s (包括dockerfile打包及仓库上传)

文章目录 一、docker run 运行测试1.数据库测试2.接口测试3.前端界面测试 二、编写dockerfile1.前端2.后端 三、推送镜像&#xff08;后面k8s就从这里获取镜像了&#xff09;四.编写 docker-compose.yml五.K8s部署1.yaml文件编写及部署houduan-deployment.yamlhouduan-service.…

【STM32】F103 时钟树

STM32F103是一款基于ARM Cortex-M3内核的32位微控制器&#xff0c;它具有丰富的外设资源和灵活的时钟配置。本文将从以下几个方面介绍STM32F103的时钟树&#xff1a; 时钟树的概念和作用时钟树的组成和分类时钟树的配置方法和步骤时钟树的应用实例 一、时钟树的概念和作用二、时…

如何通过Nacos获取当前服务注册的IP信息

一台机器可能存在多个网卡也就同时存在多个IP地址,如果我想知道我这个服务在向Nacos注册的时候使用的哪一个IP该怎么获取呢? 非常简单,你可以通过这种方式获取 import com.alibaba.cloud.nacos.NacosDiscoveryProperties; import org.springframework.boot.CommandLineRunne…

Angular 调试 —— 一个真实的多重循环导致的Bug

导致性能问题的原因可能很复杂&#xff0c;也可能很简单&#xff0c;今天让我们来看一个现实的例子。一个多重循环导致列表卡死。 startDemo() {this.processing true// 创建复杂数据结构const data [];for (let i 0; i < 5000; i) {const innerArray [];for (let j …

【数据压缩】LZ77算法原理及实现

1. 引言 LZ77算法是采用字典做数据压缩的算法,由以色列的两位大神Jacob Ziv与Abraham Lempel在1977年发表的论文《A Universal Algorithm for Sequential Data Compression》中提出。 基于统计的数据压缩编码,比如Huffman编码,需要得到先验知识——信源的字符频率,然后进…

EasyExcel导出csv文件,用Office Excel打开乱码

1.前言 导出的列里有中文&#xff0c;导出后用Excel打开乱码 2.原因 搜索相关资料&#xff0c;csv和excel的编码不一致&#xff0c;需要在导出csv的时候设置编码GBK 3.验证

多级时间轮定时器

一. 多级时间轮实现框架 ​上图是5个时间轮级联的效果图。中间的大轮是工作轮&#xff0c;只有在它上的任务才会被执行&#xff1b;其他轮上的任务时间到后迁移到下一级轮上&#xff0c;他们最终都会迁移到工作轮上而被调度执行。 多级时间轮的原理也容易理解&#xff1a;就拿时…

实用工具|教你如何使用备份神器 Rclone,手把手保姆级教程

目录 什么是Rclone 功能 特性 支持的提供商 虚拟提供商 使用 安装 配置 语法 命令列表 常用参数 日志 过滤 环境变量 最佳实践 什么是Rclone Rclone是一个用于管理云存储上的文件的命令行程序。它是云供应商web存储接口的一个功能丰富的替代方案。超过40种云存储…

【Java高级编程】Java集合

Java集合 1、Java集合框架概述1.1、集合框架的概述1.2、集合框架 2、Collection接口方法3、Iterator迭代器接口3.1、Iterator迭代器概述3.1、Iterator的使用 4、Conllection子接口一&#xff1a;List4.1、List框架4.2、ArrayList的源码分析4.3、面试题&#xff1a;ArrayList、L…

掌握这些vue内容,让你在提升代码复用上不再纠结!

前端工程化的最终目的都是为了能够更好地维护代码。代码复用是提升效率和可维护性的利器。 vue 中针对不同场景和业务情况&#xff0c;提供了各种方式。全面了解这些内容&#xff0c;可以在开发过程中让你得心应手&#xff01; 方式建议组件主要的构建模块组合式函数侧重于有状…

【单片机】STM32单片机,定时器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

文章目录 STM32中文参考手册V10.pdfTIM1 的四路PWMTIM2 的四路PWMTIM3 的四路PWMTIM4 的四路PWM STM32中文参考手册V10.pdf 在《STM32中文参考手册V10.pdf》有写&#xff1a; TIM1 的四路PWM TIM1 的PWM是带互补输出的&#xff0c;较为高级和复杂&#xff0c;有兴趣可以参…

Z3Ordering编码及查询c++实现 (GeoMesa翻译)

网上搜了很多Z3-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C, vs2015, 理论上windows和Linux都可以用. 不依赖任何库, 这项自身理解和翻译断断续续进行, 最近终于有一点进展, 本次放出Z3, 待全部实现完毕将直接挂出 详细…

知识图谱实战

一、知识图谱简单介绍 二、知识图谱的构建 三、知识图谱问答方案 NL2SQL:自然语言转为SQL语句 bulid_graph.py """知识图谱""" #三元组&#xff1a;实体-关系-实体 实体-属性-属性值import re,json from py2neo import Graph from collectio…

shell脚本检测进程的CPU内存占用率

使用方法&#xff1a; 把xxx替换为自己进程的名字&#xff0c;然后直接运行该脚本即可在当前目录下产生一个叫做memory_info.txt的文件&#xff0c;记录进程的CPU内存占用率信息。可以用来查看自己进程对系统资源的消耗情况。 #!/bin/bashprocess"xxx" output_file…

C#,数值计算——算术编码压缩技术与方法(Compression by Arithmetic Coding)源代码

算术编码的数据压缩 算术编码是无损和有损数据压缩算法中常用的一种算法。 这是一种熵编码技术&#xff0c;其中常见符号比罕见符号用更少的比特进行编码。与诸如霍夫曼编码之类的众所周知的技术相比&#xff0c;它具有一些优势。本文将详细描述CACM87算术编码的实现&#xf…

Uniapp_分包

前言&#xff1a;由于微信小程序的包只限制压缩不能超过2M&#xff0c;当开发的页面过多就要进行分包操作,tabbar页面不能进行分包其他页面可以 最多5个分包 不超过20M 第一步、找到这个位置 然后把这个代码复制进去 开启分包 "optimization" : {"subPackages&…

Linux系统【VS】Windows系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

FPS(CF、CS GO、PUBG、APEX、瓦罗兰) AI YOLOV5 自瞄 模型 权重

YOLOV5的各种AI自瞄权重&#xff0c;有需要的联系 联系方式 如果对上面的资源有需要&#xff0c;私聊或者留言或者进入下面项目了解详细内容 联系方式 加我时&#xff0c;请备注所需要的权重 https://gitee.com/wcx895278175/cf-ai-yolov5-self-aiming

【Oracle】springboot连接Oracle 集成mybatis、druid

目录 项目结构与库表数据pom.xmlapplication.yml实体类Mappercontroller接口测试 基于spring-boot 2.7.11&#xff0c;连接Oracle 11g 仅做一个简单的示例 特别说明&#xff08;不一定正确&#xff0c;还请指正&#xff09;&#xff1a;我Oracle也不熟&#xff0c;但据我观察发…