惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
B
Blog
U
Unit 42
C
Check Point Blog
I
InfoQ
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
爱范儿
爱范儿

博客园 - smil、梵音

css渐变边框的实现 C语言第4章末尾程序找错记录 css 的z-index的层级问题 由webai项目的 AI工作台 项目有感记录 C语言标准(C89/C90)中的32个关键字全列表 Windows 系统的 vscode 通过 Remote-SSH 连接虚拟机的 Ubuntu 系统运行 C 语言的代码 Windows 系统 vscode Remote-SSH 远程连接虚拟机里面的Ubuntu系统的失败处理 Ubuntu虚拟机里安装了SSH,开启SSH服务的时候报错 VS Code的Remote - SSH功能 Ubuntu系统里面安装 g++ ,sudo apt update 的含义 C语言是不是必须得通过gcc编译成可执行的程序? c语言用gcc编译过后,执行 ./hello.c 报错 ./hello.c: 权限不够 windows系统的虚拟机里面的Ubuntu系统安装VMware Tools Ubuntu的应用中心搜索 vscode 的时候,筛选条件为Snap包、debian包是什么意思,如何安装vscode Ubuntu系统是否就是Linux系统,安装软件和Windows系统有何区别 Ubuntu系统里面vscode运行C语言的第一个 Hello World 程序 vscode 中安装C/C++相关的插件 Ubuntu 安装一个轻量级的中文输入法Fcitx5 Ubuntu安装百度网盘 Ubuntu系统里面安装vscode 乌版图系统截屏快捷键 Ubuntu 系统里面运行C++ TortoiseGit 的安装与汉化 安装虚拟机+ ubuntu24.04 系统 联想小新安装 ubuntu24.04 双系统 | 安装乌版图系统 | windows安装 ubuntu24.04 双系统 利用faststone capture制作gif动图 Sublime Text 常用编辑快捷键速查表 vscode 中的 css 样式代码不显示折叠图标的解决方法 IDEA中git的Cherry-Pick的可视化使用(个人总结) IDEA中git的Cherry-Pick的使用 IDEA中如何实现git的cherry-pick可视化操作?
C primer Plus 第六版第4章节复习题5记录
smil、梵音 · 2026-08-08 · via 博客园 - smil、梵音

5 .假设一个程序的开头是这样:

#define BOOK "War and Peace"
int main(void)
{ 
  float cost
=12.99;   float percent = 80.0;
}

请构造一个使用BOOKcostpercentprintf()语句, 打印以下内容:

This copy of "War and Peace" sells for $12.99.

That is 80% of list.


根据题目要求,需要构造一个 printf() 语句,使用定义的宏 BOOK 和变量 costpercent 来打印指定内容。

完整代码

#include <stdio.h>

#define BOOK "War and Peace"

int main(void)
{
    float cost = 12.99;
    float percent = 80.0;
    
    printf("This copy of \"%s\" sells for $%.2f.\nThat is %.0f%% of list.\n", BOOK, cost, percent);
    
    return 0;
}

关键点解释

要打印的内容使用的格式符说明
"War and Peace" \"%s\" 外层用 \" 打印双引号,%s 输出字符串
$12.99 $%.2f %.2f 保留2位小数
80% %.0f%% %.0f 不显示小数,%% 打印一个 % 符号

输出结果

This copy of "War and Peace" sells for $12.99.
That is 80% of list.

格式说明详解

1打印双引号:使用 \" 转义字符

  • \"%s\" → 输出 "War and Peace"

2、打印百分号:使用 %% 转义

  • %.0f%% → 输出 80%
  • 如果只写 %,编译器会将其误认为是格式说明符的开始

3、浮点数格式

  • %.2f → 保留2位小数(12.99)
  • %.0f → 不保留小数(80)

4、换行:使用 \n 实现两行输出

其他可行写法

如果需要更清晰的代码结构,也可以分两次调用 printf()

printf("This copy of \"%s\" sells for $%.2f.\n", BOOK, cost);
printf("That is %.0f%% of list.\n", percent);

或者使用多个 % 占位符:

printf("This copy of \"%s\" sells for $%.2f.\nThat is %.0f%% of list.\n", 
       BOOK, cost, percent);

注意事项

  • BOOK 宏已经包含双引号("War and Peace"),所以在 printf 中直接用 %s 即可

  • %% 在 printf 中用于输出一个百分号字符

  • %.0f 会四舍五入到整数(80.0 → 80)