【时时三省】(C语言基础)用printf函数输出数据2

news2025/3/15 13:55:00

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

格式字符

在输出时,对不同类型的数据要指定不同的格式声明,而格式声明中最重要的内容是格式字符。常用的有以下几种格式字符。

( 1 ) d格式符。用来输出一个有符号的十进制整数。

在前面的例子中已经看到了:在输出时,按十进制整型数据的实际长度输出,正数的符号不输出。

可以在格式声明中指定输出数据的域宽(所占的列数),如用“% 5d”,指定输出数据占5列,输出的数据显示在此5列区域的右侧。如:

printf ( " % 5d \ n% 5d \ n " , 12 ,-345 ) ;

输出结果为

12      ( 12前面有3个空格)

-345   (- 345前面有1个空格)

若输出long(长整型)数据,在格式符d前加字母1(代表long),即“% ld”。若输出long long(双长整型)数据,在格式符d前加两个字母I(代表long long),即“% lld”。

( 2 ) c格式符。用来输出一个字符。

例如:

char ch='a';

printf (“% c”,ch );

运行时输出

a

也可以指定域宽,如

printf (”% 5c”,ch );

运行时输出

    a

( a前面有4个空格)

一个整数,如果在0 ~ 127范围中,也可以用“% c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;

如果整数比较大,则把它的最后一个字节的信息以字符形式输出。如:

int a = 377;

printf (”% c”,a );

也输出字符y,因为用%c格式输出时,只考虑一个字节,存放a的存储单元中最后一个字节中的信息是01111001,即十进制的121,它是' y '的ASCII代码。

( 3 ) s格式符。用来输出一个字符串。

如:printf ( " % s”," CHINA”);执行此函数时在显示屏上输出字符串”CHINA”(不包括双引号)。

( 4 ) f格式符。用来输出实数(包括单、双精度、长双精度),以小数形式输出。

有几种用法:

①基本型,用%f。

不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。

例:用%f输出实数,只能得到6位小数。

运行结果:

 

虽然a是双精度型,a / 3的结果也是双精度型,但是用%f格式声明只能输出6位小数。

②指定数据宽度和小数位数,用%m. nf。

“% 7.2”格式指定了输出的数据占7列,其中包括2位小数。对其后一位采取四舍五入方法处理,即向上或向下取近似值。如果把小数部分指定为0,则不仅不输出小数,而且小数点也不输出。

如果在上面的例题中的printf函数中指定“% 7.0f”格式声明,由于其整数部分为0,因此输出结果为0。所以不要轻易指定小数的位数为0。

如果想在上面的例题中输出双精度变量a的15位小数,可以用“% 20.15 f”格式声明,即把上面程序的第4行改为

printf ( " % 20.15 f\n " , a / 3 );

运行结果:

   0.333333333333333

注意在0的前面有3个空格

这时输出了15位小数。但是应该注意:一个双精度数只能保证15位有效数字的精确度,即使指定小数位数为50(如用%55.50f),也不能保证输出的50位都是有效的数字。

注意:在用%f输出时要注意数据本身能提供的有效数字,如float型数据的存储单元只能保证6位有效数字。double型数据能保证15位有效数字。不要以为计算机输出的所有数字都是绝对精确的。

例:float型数据的有效位数。

运行结果:

 

 本来计算的理论值应为3333.333333333…,但由于float型数据只能保证6 ~7位有效数字,因此虽然程序输出了6位小数,但从左面开始的第7位数字(即第3位小数)以后的数字并不保证是绝对正确的。

( 3 )输出的数据向左对齐,用%-m. nf。

在m.n的前面加一个负号,其作用与%m. nf形式作用基本相同,但当数据长度不超过m时,数据向左靠,右端补空格。

 

 

 

 

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

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

相关文章

django框架 [面试篇]

Django 是一个基于 Python 的web框架,遵循"快速开发,不重复造轮子(dont repeat yourself)"的原则,帮助用户构建web应用。 而 Django 它本身提供了一些全栈式的一些组件,包括了 ORM,模板引擎,表单…

信息学奥赛一本通 1449:【例题2】魔板

题目 1449:【例题2】魔板 分析 首先注意:输入是按顺时针给出的,但我们处理时需要按正常顺序排,可以用以下代码读入 string s(8, 0); // 初始化全零字符串 cin>>s[0]>>s[1]>>s[2]>>s[3]; cin>>…

你的完美主义:从缺陷到超能力

所属专栏:《逻辑辨证系列》 前情回顾: 《完美还是完成》(一):完成还是完美—完成大于完美 时间、机会、情绪成本 先完成 … 本期: 《完美还是完成》(二):你的完美主…

浅谈Linux中的Shell及其原理

浅谈Linux中的Shell及其原理 Linux中Shell的运行原理github地址前言一、Linux内核与Shell的关系1.1 操作系统核心1.2 用户与内核的隔离 二、Shell的演进与核心机制2.1 发展历程2.2 核心功能解析2.3 shell的工作流程1. 用户输入命令2. 解析器拆分指令3. 扩展器处理动态内容变量替…

ARM内部寄存器与常用汇编指令(ARM汇编)

1 地址空间&RISC与CISC CISC:复杂指令集计算机 RISC:精简指令集计算机 RISC 与 CISC 的比较 2 ARM内部寄存器 3 ARM汇编概述 RISC精简指令可以大致分为几类: 1.内存读写 2.运算 3.跳转/分支 4.比较 而指令的集合就称之为“指令集”…

【QT5 Widgets示例】Model/View编程初探

文章目录 Model/ViewModel/View编程的优点常见Model类和View类Model/View应用程序示例只读的表格修改文本外观显示变化的数据设置表格标头可编辑视图示例树结构视图示例获取视图选中项 Model/View Model/View编程的优点 Model/View编程介绍:https://doc.qt.io/qt-…

一键优化右键菜单,高效又清爽!

打工人们你们好!这里是摸鱼 特供版~ 电脑右键菜单杂乱无章,常用功能被淹没?图标显示异常、打印出错让人手足无措?别担心,Easy Context Menu来帮你!这是一款右键菜单管理工具,能快速清理不必要的…

成绩排序(结构体排序)

成绩排序 #include<stdio.h> #include<stdlib.h> struct student{char name[50];int score;int order; }; int flag; int cmp(const void *a,const void *b){struct student *s1(struct student*)a;struct student *s2(struct student*)b;if(s1->scores2->…

OpenHarmony-XTS测试

OpenHarmony-XTS测试 OpenHarmony-XTS测试环境搭建测试准备开始运行PS OpenHarmony-XTS测试 针对OpenHarmony版本进行XTS测试使用记录。 windows环境。 以acts套件为例。 环境搭建 获取测试套件&#xff0c;两种方法 1&#xff09;官网下载&#xff1a;https://www.openharm…

【物联网-WIFI】

物联网-WIFI ■ ESP32-C3-模块简介■ ESP32-C3-■ ESP32-C3-■ WIFI-模组■ WIFI-■ WIFI- ■ ESP32-C3-模块简介 ■ ESP32-C3- ■ ESP32-C3- ■ WIFI-模组 ■ WIFI- ■ WIFI-

linux常用基本指令汇总

文章目录 01. ls指令02. pwd指令03. cd指令04. touch指令05. mkdir指令06. rmdir指令07. rm指令08. man指令09. cp指令10. mv指令11. cat指令11. more指令12. less指令13. head指令14. tail指令15. time指令16. cal指令17. find指令18. grep指令19. zip/unzip指令20.tar指令21.…

Docker Desktop 安装与使用详解

目录 1. 前言2. Docker Desktop 安装2.1 下载及安装2.2 登录 Docker 账号2.3 进入 Docker Desktop 主界面 3. Docker 版本查看与环境检查3.1 查看 Docker Desktop 支持的 Docker 和 Kubernetes 版本3.2 检查 Docker 版本 4. Docker Hub 和常用镜像管理方式4.1 使用 Docker Hub4…

【HarmonyOS Next】鸿蒙应用常规面试题和答辩思路参考

【HarmonyOS Next】鸿蒙应用常规面试题和答辩思路参考 一、充分了解岗位JD要求 根据招聘发布的岗位JD&#xff0c;进行自我匹配分析。了解基本要求和加分项&#xff0c;以及项目节奏和英文要求等。 技术不匹配的点&#xff0c;是否会影响应聘岗位加分项自己是否掌握&#xf…

《计算机图形学》第二课笔记-----二维变换的推导

前言&#xff1a;为什么这么突兀的把这一节内容放在了第二课&#xff0c;第一是因为我急于求成&#xff0c;第二是因为这一章节太重要了&#xff0c;这几乎是二维三维变换的最核心的东西&#xff0c;理解了这一章节内容&#xff0c;后面的就会像打通了任督二脉一样&#xff0c;…

机器学习(七)

一&#xff0c;监督学习和无监督学习聚类的数据集比较&#xff1a; 监督学习&#xff1a; 数据集包括输入的数据和与之对应的标签 无监督学习&#xff1a; 数据集仅含有输入的数据&#xff0c;要求算法自己通过所给的数据集来确定决策边界 二&#xff0c;聚类(Clustering): 聚…

利用labelimg实现yolov8数据集的制作

我们在使用yolov8进行物体检测识别的时候&#xff0c;由于其内置的n,s,m等模型只包含90多种物体&#xff08;很多其他物品并未包含在其中&#xff09;&#xff0c;导致我们无法直接使用其模型进行视频或者图片的检测识别。这个时候&#xff0c;我们就需要自己制作数据集进行训练…

【0x80070666】-已安装另一个版本...(Tableau 安装失败)

第一种是之前安装过tableau相关软件&#xff0c;但是没卸载干净。 方法1&#xff1a;卸载旧版本 打开 控制面板 → 程序和功能&#xff08;或 添加/删除程序&#xff09;。查找 Tableau Desktop&#xff0c;如果已安装旧版本&#xff0c;卸载它。重新启动电脑后再尝试安装。 …

Word填写窗口功能详解:如何让文档填写更高效?

在日常办公中&#xff0c;我们经常需要让他人填写一些固定格式的文档&#xff0c;比如合同、申请表、调查问卷等。如果直接使用普通文本编辑&#xff0c;填写时可能会破坏排版&#xff0c;甚至修改了不该改动的内容。这时候&#xff0c;Word的填写窗口&#xff08;即“内容控件…

Oracle数据库存储结构--逻辑存储结构

数据库存储结构&#xff1a;分为物理存储结构和逻辑存储结构。 物理存储结构&#xff1a;操作系统层面如何组织和管理数据 逻辑存储结构&#xff1a;Oracle数据库内部数据组织和管理数据&#xff0c;数据库管理系统层面如何组织和管理数据 Oracle逻辑存储结构 数据库的逻…

简单创建一个Django项目并配置neo4j数据库

创建项目&#xff0c;项目的文件夹就是项目的名称 创建项目的基本框架 安装djangorestframework 单击运行 查看浏览器运行效果&#xff1a; 运行效果如下&#xff1a; 创建应用(假如说是创建一个名为myapp的应用)&#xff1a; python manage.py startapp myapp创建之后的…