C语言再学习第三章
例题3-1 编写一个函数,实现华氏度和摄氏度的转化。
已知公式:c = (5/9)*(f-32)
#include <stdio.h>double f_value = 0;
double c_value = 0;
int main(void)
{printf("请输入华氏温度\n");scanf("%lf",&f_value);c_value = (5.0/9.0)*(f_value-42);printf("华氏温度=%0.2f也就是摄氏度温度=%0.2f",f_value,c_value);return 0;
}

例题3-2 计算存款利息。有1000元。想存一年,有3种方法可选
(1)一年期活期,年利率为r1
(2)一年期定期,年利率为r2
(3)存两次半年定期,年利率为r3
分别计算这三种方式得到的本息和。
#include <stdio.h>double p0 = 1000,r1 = 0.0036, r2 = 0.0225, r3 = 0.0198;
//p1表示一年活期获得的钱
//p2表示一年定期获得的钱
//p3表示两次半年定期获得的钱
double p1 = 0, p2 = 0, p3 = 0;
int main(void)
{p1 = p0*(1 + r1);p2 = p0*(1 + r2);p3 = p0*(1 + r3/2)*(1 + r3/2);printf("p1 = %f, p2 = %f, p3 = %f",p1,p2,p3);return 0;
}

常量主要包括,整型常量、实型常量、字符常量、字符串常量、符号常量。
两个重要点
#define PI 3.1415926 定义符号常量(预编译)
const float pi = 3.1415926; 定义常变量
一个注意点
标识符只能用字母,数字和下画线组成,且第一个字符必须是字母或下画线。
数据类型(常见)
整型(int)、短整型(short int)、长整型(long int)、字符型(char)、布尔型(bool)。
单精度浮点型(float)、双精度浮点型(double)。
枚举型(enum)、空型(void)。
指针类型(*)、数组类型([])、结构体类型(struct)、共用体类型(union)、函数类型。
书中的short int类型的取值范围(其他类似计算)
short int占两个字节。示意图如下图所示,也可以理解为16个小格子,每个小格子只能存放0或1。越往左的小盒子是数据二进制形式下的高位,越往右的小盒子是数据二进制形式下的的低位。

对于short int来说,又可以分为符号型和无符号型。其中,在上图中最左边的小盒子(最高位)是表示的符号位。下面来分情况来进行讨论。
首先,对于无符号的short int类型来说,能取得最小值为0,也就是16个小格子全部填0。

能取得最大值是2^16-1,也即是16个小格子全部填1。所以无符号的short int类型可取的范围是0~65535。

接着,对于有符号的short int类型来说,这时候最高位是符号位。
当最高位,也就是符号位为0的时候,能取得最大值为2^15-1,也即是除了符号位外的15个小格子全部填1。

能取得最小值为0,也即是除了符号位外的15个小格子全部填0。

当最高位,也就是符号位为1的时候,能取得最大值为-1。
这时候需要了解-1的存储形式。
首先写出该数的绝对值,也就是1的二进制形式,0000 0000 0000 0001。
接着需要按位取反,1111 1111 1111 1110。
最后在加1即可以得到-1的存储结构,1111 1111 1111 1111。

能取得最小值-2^15=-32768。这时候需要了解-32768的存储形式。
首先写出该数的绝对值,也就是32768的二进制形式,1000 0000 0000 0000。
接着需要按位取反,0111 1111 1111 1111。
最后在加1即可以得到-32768的存储结构,1000 0000 0000 0000。

综上所述,我们求得,对于无符号的short int来说,取值范围为0~65535。
对于有符号的short int来说,取值范围为-32768~32767。
浮点型常量常见问题
在vs中编译下面的程序,会出现一行警告,这个意思是从double到float进行转化,会损失精度。这是因为3.14159这个数,系统会默认把浮点型变量按照double类型处理,但是最后在赋值中需要赋值给一个float型的a,所以才会出现这样的问题。

解决办法可以有两种,下图是解决的办法。


算数运算符
+ 加法
- 减法
* 乘法
/ 除法
% 求余
这里重点说一下,对与除法,两个实数相除得到的结果是双精度实数,但是两个整数相除,得到的是整数。


自增与自减
++ i,–i 在使用i之前,让i加减1
i++,i-- 在使用i之后,让i加减1
例题3-3 给定一个大写字母,要求用小写字母输出。
#include <stdio.h>char a;
char b;
int main(void)
{printf("请输入一个大写字母\n");scanf("%c", &a);b = a + 32;printf("%c 的小写为 %c", a, b);return 0;
}

例题3-4 给出三角形的三边长,求三角形面积。

#include <stdio.h>
#include <math.h>
double a = 3.0, b = 4.0, c = 5.0;
double p = 0;
double s = 0;
int main(void)
{p = (a + b + c) / 2.0;s = sqrt(p * (p - a) * (p - b) * (p - c));printf("三角形的三条边为a = %f,b = %f,c = %f,三角形的面积为s = %f", a, b, c, s);return 0;
}

例题3-5 求ax^2+bx+c=0的方程的根,a,b,c由键盘键入。
设b^2-4ac>0。
#include <stdio.h>
#include <math.h>double a = 0, b = 0, c = 0;
double deta = 0;
double x1 = 0, x2 = 0;
int main(void)
{printf("请输入a、b、c\n");while (deta <= 0){scanf("%lf%lf%lf", &a, &b, &c);deta = b * b - 4 * a * c;if (deta <= 0)printf("输入的a、b、c使得b^2-4ac<=0,需要重新输入\n");}x1 = (-b + sqrt(deta)) / (2 * a);x2 = (-b - sqrt(deta)) / (2 * a);printf("x1 = %f,x2 = %f", x1, x2);return 0;
}

相关文章:
C语言再学习第三章
例题3-1 编写一个函数,实现华氏度和摄氏度的转化。 已知公式:c (5/9)*(f-32) #include <stdio.h>double f_value 0; double c_value 0; int main(void) {printf("请输入华氏温度\n");scanf("%lf",&f_valu…...
【aiy篇】小目标检测综述
小目标检测(Small Object Detection)是指在图像中检测尺寸较小的目标物体,通常是指物体的尺寸小于图像大小的1/10或者更小,COCO为例,面积小于等于1024像素的对象维下目标。小目标检测是计算机视觉领域的一个重要研究方…...
常用Linux命令的基本使用
序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 cd[目录名] changge directory 切换文件夹 4 touch[文件名] touch 如果文件不存在,新建文件 5 mkdir[目录名] make directory …...
对跳表的深入理解
一,如何理解跳表 简单说跳表(Skip list)就是链表的“二分查找”。redis 的有序集合用的就是跳表算法。跳表是一种各方面性能都比较优秀的动态数据结构,可以支持快速地插入、删除、查找操作,写起来也不复杂,…...
C++017-C++冒泡排序与插入排序
文章目录C017-C冒泡排序与插入排序冒泡排序与插入排序目标冒泡排序排序规则冒泡排序优化插入排序题目描述在线练习:总结C017-C冒泡排序与插入排序 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 冒泡排序与插入排序 参考:…...
数据结构基础之链表
目录 前言 1、什么是链表 2、添加元素 3、虚拟头结点 4、查询&修改元素 5、删除元素 附:完整代码 前言 又到周末了,修整了一天,继续来写点东西吧,今天,我们来学习数据结构中的另一种基础的数据结构——链表…...
css 的渲染层合成是什么,浏览器如何创建新的渲染层
在 DOM 树中每个节点都会对应一个渲染对象(RenderObject),当它们的渲染对象处于相同的坐标空间(z 轴空间)时,就会形成一个 RenderLayers,也就是渲染层。渲染层将保证页面元素以正确的顺序堆叠&a…...
nacos-sdk-rust binding to NodeJs
广告时间 nacos-sdk-rust-binding-node : nacos-sdk-rust binding to NodeJs with napi. Tip: nacos-sdk-nodejs 仓库暂未提供 2.x gRPC 交互模式,为了能升级它,故而通过 node addon 方式调用 nacos-sdk-rust npm 包 -> https://www.npmjs.com/packa…...
MySQL下载安装以及环境配置教程
目录MySQL 下载MySQL 安装配置环境变量MySQL 下载 进入官方网站 https://www.mysql.com/ 点击 DOWNLOADS 进入下载页面 免费版本点击下方的 MySQL Community (GPL) Downloads 点击 MySQL Community Server 点击 Go to Download Page 进入下载页面 点击 Download 点击 No thank…...
概率论 1.3 古典概型与几何概型
1.3.1 排列与组合排列从n个不同元素任取r(r<n)个元素排成一列(考虑元素出现的先后次序),称此为一个排列,此种排列的总数为n(n-1)....(n-r1)n!/(n-r)!,若rn,则称为全排列,2.重复排列从n个不同元素中每次取出一个,放回…...
HTML DOM
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。HTML DOM (文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处…...
Vue组件-$refs、$nextTick和name属性的使用
Vue组件-$refs和$nextTick使用一、获取DOM二、$refs获取组件对象三、$nextTick异步更新DOM四、组件name属性的使用一、获取DOM 通过id或ref属性获取原生DOM 在mounted生命周期 – 2种方式获取原生DOM标签 目标标签 – 添加id / ref恰当时机, 通过id / 通过ref属性 获取目标标签…...
【Spark】Spark的DataFrame向Impala写入数据异常及源码解析
背景 事情是这样的,当前业务有一个场景: 从业务库的Mysql抽取数据到Hive 由于运行环境的网络限制,当前选择的方案: 使用spark抽取业务库的数据表,然后利用impala jdbc数据灌输到hive。(没有spark on hive 的条件&…...
学习笔记-架构的演进之限流-3月day03
文章目录前言限流的目标流量统计指标限流设计模式流量计数器模式滑动时间窗模式漏桶模式令牌桶模式分布式限流总结附前言 任何一个系统的运算、存储、网络资源都不是无限的,当系统资源不足以支撑外部超过预期的突发流量时,就应该要有取舍,建…...
动态规划 背包问题
动态规划 背包问题 问题描述: 有一个背包,总容量为12。有6件物品,每件物品的重量和价值不同,求在背包总容量12的前提下,装进物品的最大价值以及装进物品的编号 单个物品重量和价值: 为方便进行思考&#…...
C++ Primer Plus 学习笔记(四)—— 内存模型和名称空间
1 单独编译 C允许将组件函数放在独立的文件即头文件中,头文件中可以包含以下内容: 函数原型;使用#define或const定义的符号常量;结构声明;类声明;模板声明;内联函数。 注意,在包含…...
详解基于 Celestia、Eclipse 构建的首个Layer3 链 Nautilus Chain
以流支付为主要概念的Zebec生态,正在推动流支付这种新兴的支付方式向更远的方向发展,该生态最初以Zebec Protocol的形态发展,并从初期的Solana进一步拓展至BNB Chian以及Near上。与此同时,Zebec生态也在积极的寻求从协议形态向公链…...
列表与数组的转化
目录用np.array(a)将列表转换为数组列表转数组的特殊情况(一)列表转数组的特殊情况(二)针对子元素个数不一致的解决办法用a.tolist()函数将数组转化为列表在python的学习中,经常会用到数组与列表的相互转化,本文主要介绍下关于数组与列表转化的问题。用n…...
docker 运行花生壳实现内外网穿透
环境:centos 7 ,64位 1、创建一个指定的文件夹作为安装示例所用,该示例文件夹为“hsk-nwct”。“hsk-nwct”内创建“app”文件夹作为docker容器挂载出来的文件。 2、在“app”内下载花生壳linux安装包,下载花生壳应用:花生壳客户…...
操作系统——16.时间片轮转、优先级、多级反馈队列算法
这篇文章我们来看一下进程调度算法中的时间片轮转、优先级、多级反馈队列算法 目录 1.概述 2.时间片轮转调度算法(RR,Round-Robin) 3.优先级调度算法 4.多级反馈队列调度算法 5.分析对比 1.概述 首先,我们来看一下这篇文章…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
