涉及float和double

news/2024/2/29 2:13:57

文章目录

  • 涉及float和double的问题:
    • 它们的存储方式:
    • 有效位?
  • 链式结构

涉及float和double的问题:

它们的存储方式:

在这里插入图片描述
它们会分成小数部分和指数部分分别存储。小数部分的有效位数越多,精度就越高,指数部分占位越多,能表示的数值范围越大。

  • 一般float是4个字节,double是8个字节。
  • 一般float的精度比double的大一些。
  • double的数值表示范围远远大于float。
  • 该结论来源于谭浩强《C语言设计》的例子。

有效位?

[来源于百度百科]从一个数的左边第一个非0数字起,到末位数字止,所有的数字都是这个数的有效数字。
在这里插入图片描述
float的有效位数是六位,指的是小数点之后的六位还是包括小数点前的数总共六位?

:float的有效位数指的是小数点后的六位,不包括符号位的数字。

链式结构

定义一个学生结构体,并创建一个链表用于保存一个班级所有学生的基本信息,最后输出所有学生基本信息,以及班级的学生平均成绩。
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>typedef struct Student
{char *name;int id;unsigned int age;char group;float score;struct Student *next;
} Student, *M_Class;M_Class init_class()
{M_Class head;head = (Student *)malloc(sizeof(Student));if (!head)return NULL;head->next = NULL;return head;
}void insert_student(M_Class cls, char *name, int id, unsigned int age, char group, float score)
{M_Class p;p = (Student *)malloc(sizeof(Student));p->name = name, p->id = id, p->age = age, p->group = group, p->score = score;p->next = cls->next;cls->next = p;
}void print_class(const M_Class cls)
{M_Class prt = NULL;float total = 0, average = 0;int num_stu = 0;printf("=============== 学生基本信息 ===============\n");printf("姓名\t学号\t年龄\t小组\t成绩\n");printf("--------------------------------------------\n");for (prt = cls; prt; prt = prt->next){printf("%s\t%d\t%d\t%c\t%.2f\n",prt->name, prt->id, prt->age, prt->group, prt->score);total += prt->score;++num_stu;}printf("============================================\n");average = total / num_stu;printf("班级平均成绩:%.2f", average);
}int main(int argc, char** argv)
{M_Class cls = init_class();insert_student(cls, "王五", 1003, 16, 'B', 80.50);insert_student(cls, "李四", 1002, 15, 'A', 90.00);insert_student(cls, "张三", 1001, 16, 'A', 95.50);print_class(cls);return 0;
}

https://www.jiucaihua.cn/news/show-4626983.html

相关文章

1绪论_1.1数据结构的基本概念+1.2算法和算法评价

1.1.1基本概念和术语 数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素 数据元素是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理。一个数…

SAP-MM-维护物料主数据的类(Class)和特性(Characteristic)

一&#xff0e;说明 物料主数据有千个左右条目&#xff0c;但仍不能满足各类物料自有特性的描述&#xff0c;为此SAP启用了类&#xff08;Class&#xff09;和特性&#xff08;Characteristic&#xff09;&#xff0c;并在物料主数据的分类视图&#xff08;Characteristic&…

冈萨雷斯DIP第8章知识点

8.1 基础 图像中的冗余 编码冗余&#xff1a;用于表示灰度的8比特编码所包含的比特数&#xff0c;要比表示该灰度所需要的比特数多。可通过变长编码来解决。 空间和时间冗余&#xff1a;与相邻像素相似(图像)&#xff1b;时间&#xff1a;相邻帧中的像素(视频)。可以使用行程…

【cfeng work】什么是SaaS? SaaS详细介绍

WorkProj 内容管理 SaaSSaaS的优势SaaS的注意项SaaS产品核心组件cfeng结合work理解SaaS 本文introduce SaaS的相关内容 昨天cfeng已经介绍过云原生了&#xff0c;其实就是应用在设计上就要围绕Cloud&#xff0c;代表技术就是容器化和微服务、DevOps和区别于传统瀑布模型的持续更…

异常值检验、方差分析

异常值检验 T-test 参考&#xff1a;1.ttest和ttest2 区别 2. ttest在 matlab 3.T test分布表 方差分析&#xff08;ANOVA&#xff09; Def: 方差分析&#xff08;analysis of variance, ANOVA&#xff09;是一种统计检验&#xff0c;用于检验两组或更多组样本的均值是否相…

(字符串 ) 459. 重复的子字符串——【Leetcode每日一题】

❓459. 重复的子字符串 难度&#xff1a;简单 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “…

【Proteus仿真】【51单片机】出租车计价器

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1604显示模块、按键模块、蜂鸣器模块、DS1302时钟、速度检测模块、 直流电机驱动&#xff0c;票据打印等。 主要功能&#xff1a; 系统运行后&a…

数据库之主键、联合主键

参考文章&#xff1a;数据库之主键、联合主键 一、主键、联合主键简介 数据库主键是用来标记数据记录唯一性的列&#xff0c;不能为空&#xff0c;不能重复。 主键具有的特点&#xff1a;唯一性、非空性。 数据库联合主键&#xff1a;可以将多个列同时作为主键。&#xff0…

笔试强训 Day 7

选择题&#xff1a; 1.在&#xff08;&#xff09;情况下适宜采用 inline 定义内联函数 A 函数体含有循环语句 B 函数体含有递归语句C 函数代码少、频繁调用 D 函数代码多&#xff0c;不常调用 复习一下内联函数 在编译阶段&#xff0c;会将内联函数展开 —— 将函数调用替换成…

基于深度学习的高精度推土机检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度推土机检测识别系统可用于日常生活中检测与定位推土机目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的推土机目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训…