吉林大学 程序设计基础 2022级 OJ期末考试 2.23
本人能力有限,发出只为帮助有需要的人。
以下为实验课的复盘,内容会有大量失真,请多多包涵。
1.双手剑士的最优搭配
每把剑有攻击力和防御力两个属性。双手剑士可以同时拿两把剑,其得到攻击力为两把剑中的攻击力的最大值,防御力为两把剑中的防御力的最小值。现在想让双手剑士的攻击力和防御力之和最大。输入n作为剑的个数,再输入2n分别对应每把剑的攻击力和防御力,要求输出最优解为哪两把剑(当攻击力和防御力之和相同时优先选择编号靠前的两把剑)
输入:3 10 4 5 10 7 8
输出:1 2
题解为
#include <stdio.h>
int max(int x,int y)//最大值函数
{if(x>y)return x;return y;
}
int min(int x,int y)//最小值函数
{if(x<y)return x;return y;
}
int main(void)
{int a[100][1]={0},n;//设置二维数组scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d %d",&a[i][0],&a[i][1]);//a[i][0]为攻击力,a[i][1]为防御力int maxSum=0,attack=0,defend=0;int x,y;for(int i=0;i<n;i++)//二重循环遍历{for(int j=i+1;j<n;j++){defend=min(a[i][1],a[j][1]);attack=max(a[i][0],a[j][0]);if(defend+attack>maxSum){maxSum=defend+attack;//找当前的最优解x=i;y=j;//用x,y记录}}}printf("%d %d",x+1,y+1);//注意此题从1开始计数return 0;
}
2.一列数转化二级制中1的个数(11.17)
输入一个正整数n,之后输入n个非负整数组成一个数组,将数组中的每个元素转化成二进制数,输出数组中每个二进制数中1的个数,输出每个数前有一个空格
样例:
输入:5 1 2 3 4 5
输出: 1 1 2 1 2
#include <stdio.h>
int main(void)
{int n,i,a[100],b[100],flag;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){flag=0;while(a[i]!=0)//将数组的数字化成二进制{if(a[i]%2==1)flag++;//计算二进制中1的数量a[i]/=2;b[i]=flag;//用两个数组}}for(i=0;i<n;i++)printf(" %d",b[i]);return 0;
}
3.一周中的下一个热天(11.10)
向一个长度为7的数组中输入七天的气温(范围为-10到+10)
找到每天以后更热(温度大于此天)的一天,输出其间隔的天数
样例(题目所给样例忘了,这个是新编的)
输入1 1 -1 2 3 1 4
输出3 2 1 1 2 1 0
原题如下
#include <stdio.h>
#include <stdlib.h>int main(void)
{int temperature[7],i,j;for(i=0;i<7;i++)scanf("%d",&temperature[i]);int days[7]={0};for(i=0;i<7;i++)/**/for(i=0;i<7;i++)printf("%d ",days[i]);return 0;
}
解答
#include <stdio.h>
#include <stdlib.h>int main(void)
{int temperature[7],i,j;for(i=0;i<7;i++)scanf("%d",&temperature[i]);int days[7]={0};//考了数组初始化,但对此题的作答无影响for(i=0;i<7;i++){int flag=0;for(j=i+1;j<7;j++)//两层循环{flag++;if(temperature[j]>temperature[i]){days[i]=flag;//构建新数组break;}}}for(i=0;i<7;i++)printf("%d ",days[i]);return 0;
}
4.删除链表中的重复元素
给出一个结构体链表,包含姓名、学号、年龄三个要素。输入一个n,要求输入n个三要素后,再输入一个数字,删除年龄为这个数字的链表节点,并输出链表。
输入:
3
1 zhangsan 18
2 lisi 19
3 wangwu 18
18
输出
2 lisi 19
原题
#include <stdio.h>
#include <malloc.h>
struct cell
{int x;char name[1000];//字符数字储存姓名int age;struct cell* next;
};struct cell *build(int num)//输入链表
{
/**/
}void print(struct cell* head)//输出链表
{struct cell* p;p=head;while(p!=NULL){printf("%d %s %d\n",p->x,p->name,p->age);p=p->next;}
}
void release(struct cell* head)//释放链表所占用的空间
{struct cell *p,*tmp;p=tmp=head->next;while(p!=NULL){tmp=p;p=p->next;free(tmp);}p=head=tmp=NULL;
}struct cell* delCell(struct cell *head,int n)
{while(head->age==n)//当头节点的值要删除时,将头节点向后挪head=head->next;struct cell *p,*p0;p=head;while(p!=NULL){if(p->age==n)//删除节点的标准操作{p0->next=p->next;p=p0;}p0=p;p=p->next;}return head;
}int main(void)
{struct cell*head;int num,n;scanf("%d",&num);head=build(num);scanf("%d",&n);head=delCell(head,n);print(head);release(head);return 0;
}
题解
#include <stdio.h>
#include <malloc.h>
struct cell
{int x;char name[1000];//字符数字储存姓名int age;struct cell* next;
};struct cell *build(int num)//输入链表
{struct cell *tmp;struct cell *headA = (struct cell*)malloc(sizeof(struct cell));scanf("%d %s %d",&headA->x,headA->name,&headA->age);//注意字符串的输入方法struct cell *end = headA;for(int i=0; i<num-1; i++)//输入num个元素{tmp = (struct cell*)malloc(sizeof(struct cell));scanf("%d %s %d",&tmp->x,tmp->name,&tmp->age);end->next = tmp;end = tmp; }end->next = NULL;return headA;
}void print(struct cell* head)//输出链表
{struct cell* p;p=head;while(p!=NULL){printf("%d %s %d\n",p->x,p->name,p->age);p=p->next;}
}
void release(struct cell* head)//释放链表所占用的空间
{struct cell *p,*tmp;p=tmp=head->next;while(p!=NULL){tmp=p;p=p->next;free(tmp);}p=head=tmp=NULL;
}struct cell* delCell(struct cell *head,int n)
{while(head->age==n)//当头节点的值要删除时,将头节点向后挪head=head->next;struct cell *p,*p0;p=head;while(p!=NULL){if(p->age==n)//删除节点的标准操作{p0->next=p->next;p=p0;}p0=p;p=p->next;}return head;
}int main(void)
{struct cell*head;int num,n;scanf("%d",&num);head=build(num);scanf("%d",&n);head=delCell(head,n);print(head);release(head);return 0;
}
相关文章:
吉林大学 程序设计基础 2022级 OJ期末考试 2.23
本人能力有限,发出只为帮助有需要的人。 以下为实验课的复盘,内容会有大量失真,请多多包涵。 1.双手剑士的最优搭配 每把剑有攻击力和防御力两个属性。双手剑士可以同时拿两把剑,其得到攻击力为两把剑中的攻击力的最大值&#…...
【项目实战】SpringMVC拦截器实战 - 自定义拦截器防止重复提交
一、背景说明 如何能够实现防止重复提交呢?以下是一种可选的方式。 二、代码实战 2.1 注册重复提交拦截器到SpringMVC中 @Configuration @AllArgsConstructor public class ResourcesConfig implements WebMvcConfigurer {private final RepeatSubmitInterceptor repeatSu…...

C++ STL:容器 Container
文章目录1、序列容器1.1、容器共性1.2、vectorvector 结构* vector 扩容原理* vector 迭代器失效1.3、dequedeque 结构deque 迭代器deque 模拟连续空间1.4、listlist 特殊操作list 结构list 迭代器2、关联式容器2.1、容器共性2.2、容器特性3、无序关联式容器3.1、容器共性3.2、…...

urllib之urlopen和urlretrieve的headers传入以及parse、urlparse、urlsplit的使用
urllib库是什么?urllib库python的一个最基本的网络请求库,不需要安装任何依赖库就可以导入使用。它可以模拟浏览器想目标服务器发起请求,并可以保存服务器返回的数据。urllib库的使用:1、request.urlopen(1)只能传入url的方式from http.clie…...

【C++】二叉搜索树的模拟实现
一、概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别…...

HNU工训中心:元器件及测量基础实验报告
工训中心的牛马实验 1.实验目的 1.熟悉测量验证常用元器件参数、 并采用替代法(测量回路电流)测量其伏安特性的方法。 2.熟悉测量误差及减小测量误差注意事项 2.实验仪器和器材 1.实验仪器. 直流稳压电源型号:IT6302 台式多用表型号:UT805A 2.实验( 箱)器材 电路实验箱…...

博客系统--自动化测试
项目体验地址(账号:123,密码:123)http://120.53.20.213:8080/blog_system/login.html项目后端说明:http://t.csdn.cn/32Nnv项目码云Gitee地址:https://gitee.com/GoodManSS/project/tree/master…...

Day903.自增主键不能保证连续递增 -MySQL实战
自增主键不能保证连续递增 Hi,我是阿昌,今天学习记录的是关于自增主键不能保证连续递增的内容。 MySql保证了主键是自增,但不相对连续;帮助开发人员快速识别每个行的唯一性,并提高查询效率。 自增主键可以让主键索引…...

02-MyBatis查询-
文章目录Mybatis CRUD练习1,配置文件实现CRUD1.1 环境准备Debug01: 别名mybatisx报错1.2 查询所有数据1.2.1 编写接口方法1.2.2 编写SQL语句1.2.3 编写测试方法1.2.4 起别名解决上述问题1.2.5 使用resultMap解决上述问题1.2.6 小结1.3 查询详情1.3.1 编写接口方法1.…...
外盘国际期货招商:2023年3月关注日历,把握重要投资机会
2023年3月大事件日历 关注大事日历,把握重要投资机会 3月1日:马斯克推出特斯拉宏图第三篇章 3月1-2日:G20外长会议 3月4-5日:全国两会召开 3月9日:中国2月CPI、PPI数据 待定(前次进行日期:…...

Linux学习(9.1)文件系统的简单操作
以下内容转载自鸟哥的Linux私房菜 原文:鸟哥的 Linux 私房菜 -- Linux 磁盘与文件系统管理 (vbird.org) 磁盘与目录的容量 df:列出文件系统的整体磁盘使用量;du:评估文件系统的磁盘使用量(常用在推估目录所占容量) df du 实体…...

Hadoop综合案例 - 聊天软件数据
目录1、聊天软件数据分析案例需求2、基于Hive数仓实现需求开发2.1 建库2.2 建表2.3 加载数据2.4 ETL数据清洗2.5 需求指标统计---都很简单3、FineBI实现可视化报表3.1 FineBI介绍3.2 FineBI配置数据3.3 构建可视化报表1、聊天软件数据分析案例需求 MR速度慢—引入hive 背景&a…...

Python进阶-----面向对象1.0(对象和类的介绍、定义)
目录 前言: 面向过程和面向对象 类和对象 Python中类的定义 (1)类的定义形式 (2)深层剖析类对象 前言: 感谢各位的一路陪伴,我学习Python也有一个月了,在这一个月里我收获满满…...

天猫淘宝企业服务为中小微企业打造供应链智能协同网络,让采购不再将就!丨爱分析报告
编者按:近日天猫淘宝企业服务&爱分析联合发布《2023中小微企业电商采购白皮书》,为中小微企业采购数字化带来红利。 某水泵企业:线上客户主要是中小微企业,线上业绩遇到瓶颈,如何突破呢?某焊割设备企业…...

基于四信网络摄像机的工业自动化应用
方案背景 随着数控机床被广泛的应用在工业生产中,数控技术发展成为制造业的核心。 鉴于数控机床的复杂性,以及企业人力储备有限,设备的监控和维护必须借助外部力量,而如何实现车间实时监测成了目前迫切解决的问题。 方案需求 ①兼…...

软件测试2
一 web掐断三大核心技术 HTML:负责网页的结构 CSS:负责网页的美化 JS:负责网页的行为 二 工具的使用 改变HBuilder文字的大小: 工具-视觉主题设置-大小22-确定 三 html简介 中文定义:超文本标记语言 新建一个html…...
(二分查找)leetcode162. 寻找峰值
文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识一、题目 1、题目描述 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值…...

spring boot 配合element ui vue实现表格的批量删除(前后端详细教学,简单易懂,有手就行)
目录 一.前言: 二. 前端代码: 2.1.element ui组件代码 2.2删除按钮 2.3.data 2.4.methods 三.后端代码: 一.前言: 研究了其他人的博客,找到了一篇有含金量的,进行了部分改写实现前后端分离࿰…...

hiveSQL开窗函数详解
hive开窗函数 文章目录hive开窗函数1. 开窗函数概述1.1 窗口函数分类1.2 窗口函数和普通聚合函数的区别2. 窗口函数的基本用法2.1 基本用法2.2 设置窗口的方法2.2.1 window_name2.2.2 partition by2.2.3 order by 子句2.2.4 rows指定窗口大小窗口框架2.3 开窗函数中加 order by…...

深度学习基础实例与总结
一、神经网络 1 深度学习 1 什么是深度学习? 简单来说,深度学习就是一种包括多个隐含层 (越多即为越深)的多层感知机。它通过组合低层特征,形成更为抽象的高层表示,用以描述被识别对象的高级属性类别或特征。 能自生成数据的中…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...