当前位置: 首页 > news >正文

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 编写一个函数&#xff0c;实现华氏度和摄氏度的转化。 已知公式&#xff1a;c &#xff08;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篇】小目标检测综述

小目标检测&#xff08;Small Object Detection&#xff09;是指在图像中检测尺寸较小的目标物体&#xff0c;通常是指物体的尺寸小于图像大小的1/10或者更小&#xff0c;COCO为例&#xff0c;面积小于等于1024像素的对象维下目标。小目标检测是计算机视觉领域的一个重要研究方…...

常用Linux命令的基本使用

序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 cd[目录名] changge directory 切换文件夹 4 touch[文件名] touch 如果文件不存在&#xff0c;新建文件 5 mkdir[目录名] make directory …...

对跳表的深入理解

一&#xff0c;如何理解跳表 简单说跳表&#xff08;Skip list&#xff09;就是链表的“二分查找”。redis 的有序集合用的就是跳表算法。跳表是一种各方面性能都比较优秀的动态数据结构&#xff0c;可以支持快速地插入、删除、查找操作&#xff0c;写起来也不复杂&#xff0c…...

C++017-C++冒泡排序与插入排序

文章目录C017-C冒泡排序与插入排序冒泡排序与插入排序目标冒泡排序排序规则冒泡排序优化插入排序题目描述在线练习&#xff1a;总结C017-C冒泡排序与插入排序 在线练习&#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/ 冒泡排序与插入排序 参考&#xff1a;…...

数据结构基础之链表

目录 前言 1、什么是链表 2、添加元素 3、虚拟头结点 4、查询&修改元素 5、删除元素 附&#xff1a;完整代码 前言 又到周末了&#xff0c;修整了一天&#xff0c;继续来写点东西吧&#xff0c;今天&#xff0c;我们来学习数据结构中的另一种基础的数据结构——链表…...

css 的渲染层合成是什么,浏览器如何创建新的渲染层

在 DOM 树中每个节点都会对应一个渲染对象&#xff08;RenderObject&#xff09;&#xff0c;当它们的渲染对象处于相同的坐标空间&#xff08;z 轴空间&#xff09;时&#xff0c;就会形成一个 RenderLayers&#xff0c;也就是渲染层。渲染层将保证页面元素以正确的顺序堆叠&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 交互模式&#xff0c;为了能升级它&#xff0c;故而通过 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)个元素排成一列(考虑元素出现的先后次序)&#xff0c;称此为一个排列&#xff0c;此种排列的总数为n(n-1)....(n-r1)n!/(n-r)&#xff01;&#xff0c;若rn,则称为全排列&#xff0c;2.重复排列从n个不同元素中每次取出一个,放回…...

HTML DOM

通过 HTML DOM&#xff0c;可访问 JavaScript HTML 文档的所有元素。HTML DOM (文档对象模型)当网页被加载时&#xff0c;浏览器会创建页面的文档对象模型&#xff08;Document Object Model&#xff09;。HTML DOM 定义了用于 HTML 的一系列标准的对象&#xff0c;以及访问和处…...

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写入数据异常及源码解析

背景 事情是这样的&#xff0c;当前业务有一个场景: 从业务库的Mysql抽取数据到Hive 由于运行环境的网络限制&#xff0c;当前选择的方案&#xff1a; 使用spark抽取业务库的数据表&#xff0c;然后利用impala jdbc数据灌输到hive。&#xff08;没有spark on hive 的条件&…...

学习笔记-架构的演进之限流-3月day03

文章目录前言限流的目标流量统计指标限流设计模式流量计数器模式滑动时间窗模式漏桶模式令牌桶模式分布式限流总结附前言 任何一个系统的运算、存储、网络资源都不是无限的&#xff0c;当系统资源不足以支撑外部超过预期的突发流量时&#xff0c;就应该要有取舍&#xff0c;建…...

动态规划 背包问题

动态规划 背包问题 问题描述&#xff1a; 有一个背包&#xff0c;总容量为12。有6件物品&#xff0c;每件物品的重量和价值不同&#xff0c;求在背包总容量12的前提下&#xff0c;装进物品的最大价值以及装进物品的编号 单个物品重量和价值&#xff1a; 为方便进行思考&#…...

C++ Primer Plus 学习笔记(四)—— 内存模型和名称空间

1 单独编译 C允许将组件函数放在独立的文件即头文件中&#xff0c;头文件中可以包含以下内容&#xff1a; 函数原型&#xff1b;使用#define或const定义的符号常量&#xff1b;结构声明&#xff1b;类声明&#xff1b;模板声明&#xff1b;内联函数。 注意&#xff0c;在包含…...

详解基于 Celestia、Eclipse 构建的首个Layer3 链 Nautilus Chain

以流支付为主要概念的Zebec生态&#xff0c;正在推动流支付这种新兴的支付方式向更远的方向发展&#xff0c;该生态最初以Zebec Protocol的形态发展&#xff0c;并从初期的Solana进一步拓展至BNB Chian以及Near上。与此同时&#xff0c;Zebec生态也在积极的寻求从协议形态向公链…...

列表与数组的转化

目录用np.array(a)将列表转换为数组列表转数组的特殊情况(一)列表转数组的特殊情况(二)针对子元素个数不一致的解决办法用a.tolist()函数将数组转化为列表在python的学习中&#xff0c;经常会用到数组与列表的相互转化&#xff0c;本文主要介绍下关于数组与列表转化的问题。用n…...

docker 运行花生壳实现内外网穿透

环境&#xff1a;centos 7 ,64位 1、创建一个指定的文件夹作为安装示例所用&#xff0c;该示例文件夹为“hsk-nwct”。“hsk-nwct”内创建“app”文件夹作为docker容器挂载出来的文件。 2、在“app”内下载花生壳linux安装包&#xff0c;下载花生壳应用&#xff1a;花生壳客户…...

操作系统——16.时间片轮转、优先级、多级反馈队列算法

这篇文章我们来看一下进程调度算法中的时间片轮转、优先级、多级反馈队列算法 目录 1.概述 2.时间片轮转调度算法&#xff08;RR&#xff0c;Round-Robin&#xff09; 3.优先级调度算法 4.多级反馈队列调度算法 5.分析对比 1.概述 首先&#xff0c;我们来看一下这篇文章…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...