作业:IO:day2
题目一
第一步:创建一个 struct Student 类型的数组 arr[3],初始化该数组中3个学生的属性
第二步:编写一个叫做save的函数,功能为 将数组arr中的3个学生的所有信息,保存到文件中去,使用fread实现fwrite
第三步:编写一个叫做load的函数,功能为 将文件中保存的3个学生信息,读取后,写入到另一个数组 brr 中去
第四步:编写一个叫做 show的函数,功能为 遍历输出 arr 或者 brr 数组中的所有学生的信息
第五步:编写一个叫做 setMath 的函数,功能为 修改 文件中 所有学生的数学成绩
代码
#include "student.h"NodePtr createHead()
{NodePtr H=(NodePtr)malloc(sizeof(Node));if(NULL==H){printf("申请空间失败\n");return NULL;}H->tail=H;H->next=NULL;printf("头结点初始化完毕\n\n");return H;
}
NodePtr addData(NodePtr H)
{NodePtr newnode=(NodePtr)malloc(sizeof(Node));if(NULL==newnode){printf("新节点申请失败\n");return NULL;}//原最后一个数据 指向处理H->tail->next=newnode;//头结点指向处理if(NULL==H->next){H->next=newnode;//头指针处理}H->tail=newnode;//尾指针处理//本节点指针域处理newnode->next=NULL;//本节点数据域处理printf("姓名:");fscanf(stdin,"%s",newnode->data.name);printf("数学:");fscanf(stdin,"%lf",&newnode->data.math);printf("语文:");fscanf(stdin,"%lf",&newnode->data.chinese);printf("英语:");fscanf(stdin,"%lf",&newnode->data.english);printf("物理:");fscanf(stdin,"%lf",&newnode->data.physical);printf("化学:");fscanf(stdin,"%lf",&newnode->data.chemical);printf("生物:");fscanf(stdin,"%lf",&newnode->data.biological);return newnode;
}void save(NodePtr H,const char* Name_of_File)
{if(NULL==H){printf("保存失败:地址不合法\n");return;}//打开文件FILE* wfp=fopen(Name_of_File,"w");NodePtr temp=H;//用于遍历while(temp->next!=NULL){temp=temp->next;fwrite(&temp->data,sizeof(temp->data),1,wfp);}//关闭文件fclose(wfp);printf("数据已写入:%s\n\n",Name_of_File);
}void show(NodePtr H)
{NodePtr temp=H;if(NULL==H){printf("地址不合法\n");return;}while(temp->next!=NULL){temp=temp->next;printf("%s ",temp->data.name);printf("%lf ",temp->data.math);printf("%lf ",temp->data.chinese);printf("%lf ",temp->data.english);printf("%lf ",temp->data.physical);printf("%lf ",temp->data.chemical);printf("%lf\n",temp->data.biological);}printf("链表显示完毕\n\n");}void load(NodePtr H,const char* Name_of_File)
{//打开文件FILE* rfp=fopen(Name_of_File,"r");while(1){NodePtr newnode=(NodePtr)malloc(sizeof(Node));int res=fread(&newnode->data,sizeof(newnode->data),1,rfp);if(EOF==res|| 0==res){free(newnode);newnode=NULL;break;}//指向处理//原最后一个数据 指向处理H->tail->next=newnode;H->tail=newnode;//尾指针处理//本节点指针域处理newnode->next=NULL;//本节点数据域处理}//关闭文件fclose(rfp);printf("数据已载入链表\n\n");
}
结果

题目
使用 fread 和 fwrite 将一张任意bmp图片改成德旗

代码
int main(int argc, const char *argv[])
{FILE* wfp=fopen("photo.bmp","r+");int width=0,height=0;fseek(wfp,18,SEEK_SET);fread(&width,4,1,wfp);fread(&height,4,1,wfp);fseek(wfp,54,SEEK_SET);unsigned char red[3]={0,0,255};unsigned char yellow[3]={0,255,255};//黄色unsigned char black[3]={0,0,0};//黑色for(int i=0;i<width*height;i++){if(i>width*height*2/3){fwrite(black,3,1,wfp);}else if(i>width*height/3){fwrite(red,3,1,wfp);}else{fwrite(yellow,3,1,wfp);}}fclose(wfp);return 0;
}
结果

相关文章:
作业:IO:day2
题目一 第一步:创建一个 struct Student 类型的数组 arr[3],初始化该数组中3个学生的属性 第二步:编写一个叫做save的函数,功能为 将数组arr中的3个学生的所有信息,保存到文件中去,使用fread实现fwrite 第三步…...
UVM: TLM机制
topic overview 不建议的方法:假如没有TLM TLM TLM 1.0 整个TLM机制下,底层逻辑离不开动作发起者和被动接受者这个底层的模型基础,但实际上,在验证环境中,任何一个组件,都有可能成为动作的发起者࿰…...
flink的EventTime和Watermark
时间机制 Flink中的时间机制主要用在判断是否触发时间窗口window的计算。 在Flink中有三种时间概念:ProcessTime、IngestionTime、EventTime。 ProcessTime:是在数据抵达算子产生的时间(Flink默认使用ProcessTime) IngestionT…...
arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用
1、相交 需要输入两个面要素,最终得到的是两个输入面要素相交部分的结果面要素。 2、合并 合并能将两个单独存放的两个要素类的内容,汇集到一个要素类里面。 3、融合 融合能将一个要素类内的所有元素融合成一个整体。 4、裁剪 裁剪需要输入两个面要…...
【Leetcode 热题 100】20. 有效的括号
问题背景 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s s s,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每…...
比较procfs 、 sysctl和Netlink
procfs 文件系统和 sysctl 的使用: procfs 文件系统(/proc) procfs 文件系统是 Linux 内核向用户空间暴露内核数据结构以及配置信息的一种方式。`procfs` 的挂载点是 /proc 目录,这个目录中的文件和目录呈现内核的运行状况和配置信息。通过读写这些文件,可以查看和控制内…...
Leetcode 3413. Maximum Coins From K Consecutive Bags
Leetcode 3413. Maximum Coins From K Consecutive Bags 1. 解题思路2. 代码实现 题目链接:3413. Maximum Coins From K Consecutive Bags 1. 解题思路 这一题的话思路上整体上就是一个遍历,显然,要获得最大的coin,其选取的范围…...
MakeFile使用指南
文章目录 1. MakeFile 的作用2. 背景知识说明2.1 程序的编译与链接2.2 常见代码的文档结构 3. MakeFile 的内容4. Makefile的基本语法5. 变量定义5.1 一般变量赋值语法5.2 自动化变量 6. 通配符 参考: Makefile教程:Makefile文件编写1天入门 Makefile由浅…...
矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM
在短视频创作与传播领域,矩阵碰一碰发视频结合视频剪辑功能,为用户带来了高效且富有创意的内容产出方式。这一功能允许用户通过碰一碰 NFC 设备触发视频分享,并在分享前对视频进行个性化剪辑。以下将详细阐述该功能的源码搭建过程。 一、技术…...
VB.NET CRC32 校验
在 VB.NET 中实现 CRC32 校验并在校验失败时退出程序,你可以按照以下步骤进行: 实现 CRC32 计算函数:首先,你需要一个函数来计算给定数据的 CRC32 值。 比较计算的 CRC32 值:然后,你需要将计算出的…...
冒充者综合征上线了
背景 今天干了一件蠢事儿,上周末咸鱼上有人拍了之前发布的一个java程序,基于 JWT 实现的一个五子棋游戏的源代码。想着反正又没事,就找到了移动硬盘拷贝出那个源代码上传网盘发货了。 今天买家找我说解压不了,我电脑解压正常。就…...
【大模型】百度千帆大模型对接LangChain使用详解
目录 一、前言 二、LangChain架构与核心组件 2.1 LangChain 核心架构 2.2 LangChain 核心组件 三、环境准备 3.1 前置准备 3.1.1 创建应用并获取apikey 3.1.2 开通付费功能 3.2 获取LangChain文档 3.3 安装LangChain依赖包 四、百度千帆大模型对接 LangChain 4.1 LL…...
Redis相关面试
以下是一些在面试中关于 Redis 最常被问到的问题,涵盖了 Redis 的基础概念、数据结构、持久化、主从复制、哨兵、集群、应用场景以及常见的缓存问题等。可以根据自身实际项目经验,结合下面的要点进行深入讲解。 1. Redis 基础与特点 Redis 是什么&#x…...
使用强化学习训练神经网络玩俄罗斯方块
一、说明 在 2024 年暑假假期期间,Tim学习并应用了Q-Learning (一种强化学习形式)来训练神经网络玩简化版的俄罗斯方块游戏。在本文中,我将详细介绍我是如何做到这一点的。我希望这对任何有兴趣将强化学习应用于新领域的人有所帮助…...
java中的日期处理:只显示日期,不显示时间的两种处理方式
需要记录某个操作的操作时间,数据库中该字段为DATE类型; 插入数据的时候,使用数据库函数NOW()获取当前日期并插入: <insert id"batchInsertOrgTestersByProjectId">insert into project_org_testers(project_un…...
腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏
作品介绍 贪吃蛇小游戏需要控制蛇的移动方向,使其吃掉地图上随机出现的食物,每吃掉一个食物,蛇的身体就会增长一格,是一款老少皆宜的小游戏,我们可以用腾讯ai助手生成全部代码,简单方便快捷。 技术架构 …...
水水水水水
为了拿推广卷,但不想把我原本完整的文章拆成零散的多篇,只能出此下策随便发一篇,认真写的都笔记专栏里 5G与未来网络 5G技术一直是近几年讨论的热点。它不仅仅是提升手机上网速度,更是对万物互联(IoT)的一次…...
Spring整合SpringMVC
目录 【pom.xml】文件; 新建【applicationContext.xml】文件 新建【springmvc.xml】文件; 配置【src/main/webapp/WEB-INF/web.xml】文件; 新建【com.gupaoedu.service.IUserService】; 新建【com.gupaoedu.service.impl.Use…...
【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 说句题外话,写这篇的时间比写所有权还还花的久,trait是真的比较难理解的概念。 10.4.1. 把trait作为参数 继续以…...
嵌入式系统 (2.嵌入式硬件系统基础)
2.嵌入式硬件系统基础 2.1嵌入式硬件系统的组成 嵌入式硬件系统以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 嵌入式微处理器采用冯诺依曼结构或哈佛结构:前者指令和数据共享同一存储空间…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
