ZZNUOJ(C/C++)基础练习1041——1050(详解版)

1041 : 数列求和2
题目描述
输入一个整数n,输出数列1-1/3+1/5-……前n项的和。
输入
输入只有一个整数n。
输出
结果保留2为小数,单独占一行。
样例输入
3样例输出
0.87注意sum += 1相当于sum=sum+1
注意sum *= 1相当于sum=sum*1
C语言版
#include<stdio.h> // 包含标准输入输出库
#include<math.h> // 包含数学库(虽然在这个程序中没有用到数学库的功能)int main() // 主函数
{int n, i; // 定义两个整型变量n和i,用于存储用户输入的项数和循环计数double sum = 0, mid = -1; // 定义两个双精度浮点型变量sum和mid,分别用于存储数列和和交替符号的项scanf("%d", &n); // 从用户输入中读取一个整数,存储到变量n中// 计算数列和for (i = 1; i <= n; i++) // 从1到n循环{mid *= -1.0; // 交替符号sum += mid / (2 * i - 1); // 计算当前项并加到sum上}printf("%.2f\n", sum); // 输出数列和,保留两位小数return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出流格式化库
using namespace std; // 使用标准命名空间stdint main() // 主函数
{int n, i; // 定义两个整型变量n和i,用于存储用户输入的项数和循环计数double sum = 0, mid = -1; // 定义两个双精度浮点型变量sum和mid,分别用于存储数列和和交替符号的项cin >> n; // 从标准输入读取一个整数,存储到变量n中// 计算数列和for (i = 1; i <= n; i++) // 从1到n循环{mid *= -1.0; // 交替符号sum += mid / (2 * i - 1); // 计算当前项并加到sum上}cout << setprecision(2) << fixed << sum << endl; // 使用setprecision(2)和fixed设置小数精度为2位,并输出数列和return 0; // 程序正常结束
}

1042 : 数列求和3
题目描述
求1-2/3+3/5-4/7+5/9-6/11+...的前n项和,结果保留3位小数。
输入
输入正整数n(n>0)。
输出
输出一个实数,保留3位小数,单独占一行。
样例输入
5样例输出
0.917
C语言版
#include<stdio.h> // 包含标准输入输出库int main() // 主函数
{int n, i; // 定义两个整型变量n和i,用于存储用户输入的项数和循环计数double sum = 0, mid = -1; // 定义两个双精度浮点型变量sum和mid,分别用于存储数列和和交替符号的项scanf("%d", &n); // 从用户输入中读取一个整数,存储到变量n中// 计算数列和for (i = 1; i <= n; i++) // 从1到n循环{mid *= -1.0; // 交替符号sum += mid * i / (2 * i - 1); // 计算当前项并加到sum上}printf("%.3f\n", sum); // 输出数列和,保留三位小数return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出流格式化库
using namespace std; // 使用标准命名空间stdint main() // 主函数
{int n, i; // 定义两个整型变量n和i,用于存储用户输入的项数和循环计数double sum = 0, mid = -1; // 定义两个双精度浮点型变量sum和mid,分别用于存储数列和和交替符号的项cin >> n; // 从标准输入读取一个整数,存储到变量n中// 计算数列和for (i = 1; i <= n; i++) // 从1到n循环{mid *= -1.0; // 交替符号sum += mid * i / (2 * i - 1); // 计算当前项并加到sum上}cout << setprecision(3) << fixed << sum << endl; // 使用setprecision(3)和fixed设置小数精度为3位,并输出数列和return 0; // 程序正常结束
}

1043 : 最大值
题目描述
输入一个整数n和n个整数,输出这n个整数的最大值。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出包含一个整数,即n个数中的最大值,单独占一行。
样例输入
4 3 7 5 6样例输出
7注意设立变长数组,必须在输入n之后
法一
C语言版
#include<stdio.h> // 包含标准输入输出库int main() {int n, i; // 定义变量n用于存储数组大小,i用于循环控制scanf("%d", &n); // 从输入中读取数组的大小nint arr[n]; // 定义一个动态数组,大小由用户输入决定// 从用户输入中读取数组的每个元素for (i = 0; i < n; i++) {scanf("%d", &arr[i]); // 逐个读取输入的整数,存储到数组arr中}// 初始化最大值变量为数组的第一个元素int max = arr[0]; // 遍历数组,寻找最大值for (i = 1; i < n; i++) {if (arr[i] > max) { // 如果当前元素大于当前最大值max = arr[i]; // 更新最大值}}// 输出最大值printf("%d\n", max);return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间int main() {int n, i; // 定义变量n用于存储数组大小,i用于循环控制cin >> n; // 从标准输入读取数组的大小nint arr[n]; // 定义一个变长数组,大小由输入决定// 从用户输入中读取数组的每个元素for (i = 0; i < n; i++) {cin>>arr[i]; // 使用cin逐个读取输入的整数,存储到数组arr中}// 初始化最大值变量为数组的第一个元素int max = arr[0];// 遍历数组,寻找最大值for (i = 1; i < n; i++) {if (arr[i] > max) { // 如果当前元素大于当前最大值max = arr[i]; // 更新最大值}}// 输出最大值cout << max << endl;return 0; // 程序正常结束
}
法二(与法一没太大区别)
C语言版
#include<stdio.h> // 包含标准输入输出头文件int main() {int n, i, max; // 定义变量:n表示数组大小,i用于循环控制,max用于存储最大值// 读取数组大小n和数组的第一个元素(初始化最大值)scanf("%d%d", &n, &max); int arr[n]; // 定义一个动态数组,大小由用户输入决定// 从数组的第二个元素开始读取(因为第一个元素已经读取并赋值给max)for (i = 1; i < n; i++) {scanf("%d", &arr[i]); // 读取数组的第i个元素if (arr[i] > max) { // 如果当前元素大于当前最大值max = arr[i]; // 更新最大值}}// 输出最大值printf("%d\n", max);return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间,避免重复书写std::int main() {int n, i, max; // 定义变量:n表示数组大小,i用于循环控制,max用于存储最大值// 从标准输入读取数组的大小n和数组的第一个元素(初始化最大值)cin >> n >> max;int arr[n]; // 定义一个动态数组,大小由由输入决定(C++中不推荐使用VLA,但这里为了与C语言兼容)// 从数组的第二个元素开始读取(因为第一个元素已经读取并赋值给max)for (i = 1; i < n; i++) {cin >> arr[i]; // 读取数组的第i个元素if (arr[i] > max) { // 如果当前元素大于当前最大值max = arr[i]; // 更新最大值}}// 输出最大值cout << max << endl;return 0; // 程序正常结束
}
法三 (排序思想)

C语言版
#include<stdio.h> // 包含标准输入输出头文件int main() {int n, i; // 定义变量:n表示数组大小,i用于循环控制// 从输入中读取数组的大小nscanf("%d", &n);int arr[n]; // 定义一个变长数组(VLA),大小由输入决定// 从输入中读取数组的每个元素for (i = 0; i < n; i++) {scanf("%d", &arr[i]); // 逐个读取输入的整数,存储到数组arr中}// 使用冒泡排序的思想,将数列最大值转移到最后一个元素for (i = 0; i < n-1; i++) {if (arr[i] > arr[i+1]) { // 如果当前元素大于下一个元素int mid = arr[i]; // 交换两个元素的位置arr[i] = arr[i+1];arr[i+1] = mid;}}// 输出最大值(位于数组的最后一个位置)printf("%d\n", arr[n-1]);return 0; // 程序正常结束
}
C++版(可使用容器vector替换数组)
#include<iostream> // 包含C++标准输入输出流库
using namespace std;int main() {int n, i; // 定义变量:n表示数组大小,i用于循环控制// 从标准输入读取数组的大小ncin >> n;int arr[n]; // 定义一个变长数组,大小由输入决定// 从标准输入读取数组的每个元素for (i = 0; i < n; i++) {cin >> arr[i]; // 逐个读取输入的整数,存储到数组arr中}// 使用冒泡排序的思想,将数列最大值转移到最后一个元素for (i = 0; i < n - 1; i++) {if (arr[i] > arr[i + 1]) { // 如果当前元素大于下一个元素int mid = arr[i]; // 交换两个元素的位置arr[i] = arr[i + 1];arr[i + 1] = mid;}}// 输出最大值(位于数组的最后一个位置)cout << arr[n - 1] << endl;return 0; // 程序正常结束
}
法四(使用C++的nth_element函数)
了解nth_element函数:nth_element函数——C++快速选择函数-CSDN博客
#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含算法库,用于使用 nth_element
using namespace std; // 使用标准命名空间int main()
{int n, i; // 定义变量 n 和 i,分别用于存储数组大小和循环索引cin >> n; // 输入数组的大小int arr[n]; // 定义一个动态数组,存储 n 个整数(C++11之前 不推荐这样定义动态数组)for(i = 0; i < n; i++) // 循环输入数组的每个元素{cin >> arr[i]; // 输入数组元素} nth_element(arr, arr + n - 1, arr + n); // 调用 nth_element,将第 n 小的元素(即最大值)放到第n个位置(对应下标为n-1)cout << arr[n - 1] << endl; // 输出第 n 小的元素(即数组中的最大值)return 0; // 程序结束
}
下面这个代码逻辑运算是对的,但在oj上过不了
#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含算法库,用于使用 nth_element
using namespace std; // 使用标准命名空间int main()
{int n, i; // 定义变量 n 和 i,分别用于存储数组大小和循环索引cin >> n; // 输入数组的大小vector<int> arr(n); // 使用 vector 定义动态数组,存储 n 个整数for(i = 0; i < n; i++) // 循环输入数组的每个元素{cin >> arr[i]; // 输入数组元素} nth_element(arr.begin(), arr.begin() + n - 1, arr.end()); // 调用 nth_element// 这里的目的是找到数组中第 n 小的元素(即数组中的最大值)// nth_element 会将第 n 小的元素放到 arr[n-1] 的位置上// 并且保证 arr[n-1] 之前的元素都不大于 arr[n-1]cout << arr[n - 1] << endl; // 输出第 n 小的元素(即数组中的最大值)return 0; // 程序结束
}
法五(使用C++的max_element函数,涉及到数组指针)
max_element函数会返回指向数组中最大元素的指针,然后通过解引用指针*a来输出最大值。了解max_element函数:简要介绍C++中的 max 和 min 函数以及返回值-CSDN博客
#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含算法库,用于使用 max_element
using namespace std; // 使用标准命名空间int main()
{int n, i; // 定义变量 n 和 i,分别用于存储数组大小和循环索引cin >> n; // 输入数组的大小int arr[n]; // 定义一个动态数组,存储 n 个整数for(i = 0; i < n; i++) // 循环输入数组的每个元素{cin >> arr[i]; // 输入数组元素} int* a = max_element(arr, arr + n); // 使用 max_element 找到数组中的最大值// max_element 返回指向数组中最大元素的指针cout << (*a) << endl; // 输出最大值return 0; // 程序结束
}
相关文章:
ZZNUOJ(C/C++)基础练习1041——1050(详解版)
1041 : 数列求和2 题目描述 输入一个整数n,输出数列1-1/31/5-……前n项的和。 输入 输入只有一个整数n。 输出 结果保留2为小数,单独占一行。 样例输入 3 样例输出 0.87注意sum 1相当于sumsum1 注意sum * 1相当于sumsum*1 C语言版 #include<stdio.h> // 包含…...
JavaScript系列(51)--解释器实现详解
JavaScript解释器实现详解 🎯 今天,让我们深入探讨JavaScript解释器的实现。解释器是一个将源代码直接转换为结果的程序,通过理解其工作原理,我们可以更好地理解JavaScript的执行过程。 解释器基础概念 🌟 …...
浅析DDOS攻击及防御策略
DDoS(分布式拒绝服务)攻击是一种通过大量计算机或网络僵尸主机对目标服务器发起大量无效或高流量请求,耗尽其资源,从而导致服务中断的网络攻击方式。这种攻击方式利用了分布式系统的特性,使攻击规模更大、影响范围更广…...
深度学习 Pytorch 神经网络的学习
本节将从梯度下降法向外拓展,介绍更常用的优化算法,实现神经网络的学习和迭代。在本节课结束将完整实现一个神经网络训练的全流程。 对于像神经网络这样的复杂模型,可能会有数百个 w w w的存在,同时如果我们使用的是像交叉熵这样…...
【回溯】目标和 字母大小全排列
文章目录 494. 目标和解题思路:回溯784. 字母大小写全排列解题思路:回溯 494. 目标和 494. 目标和 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联起所有整数,可以构造一个 表达式…...
Linux系统上安装与配置 MySQL( CentOS 7 )
目录 1. 下载并安装 MySQL 官方 Yum Repository 2. 启动 MySQL 并查看运行状态 3. 找到 root 用户的初始密码 4. 修改 root 用户密码 5. 设置允许远程登录 6. 在云服务器配置 MySQL 端口 7. 关闭防火墙 8. 解决密码错误的问题 前言 在 Linux 服务器上安装并配置 MySQL …...
Miniconda 安装及使用
文章目录 前言1、Miniconda 简介2、Linux 环境说明2.1、安装2.2、配置2.3、常用命令2.4、常见问题及解决方案 前言 在 Python 中,“环境管理”是一个非常重要的概念,它主要是指对 Python 解释器及其相关依赖库进行管理和隔离,以确保开发环境…...
记录一次,PyQT的报错,多线程Udp失效,使用工具如netstat来检查端口使用情况。
1.问题 报错Exception in thread Thread-1: Traceback (most recent call last): File "threading.py", line 932, in _bootstrap_inner File "threading.py", line 870, in run File "main.py", line 456, in udp_recv IndexError: list…...
kamailio-ACC_JSON模块详解【后端语言go】
要确认 ACC_JSON 模块是否已经成功将计费信息推送到消息队列(MQueue),以及如何从队列中取值,可以按照以下步骤进行操作: 1. 确认 ACC_JSON 已推送到队列 1.1 配置 ACC_JSON 确保 ACC_JSON 模块已正确配置并启用。以下…...
群晖NAS安卓Calibre 个人图书馆
docker 下载镜像johngong/calibre-web,安装之 我是本地的/docker/xxx/metadata目录 映射到 /usr/local/calibre-web/app/cps/metadata_provider CALIBREDB_OTHER_OPTION 删除 CALIBRE_SERVER_USER calibre_server_user 缺省用户名口令 admin admin123 另外有个N…...
android主题设置为..DarkActionBar.Bridge时自定义DatePicker选中日期颜色
安卓自定义DatePicker选中日期颜色 背景:解决方案:方案一:方案二:实践效果: 背景: 最近在尝试用原生安卓实现仿element-ui表单校验功能,其中的的选择日期涉及到安卓DatePicker组件的使用&#…...
pytorch实现基于Word2Vec的词嵌入
PyTorch 实现 Word2Vec(Skip-gram 模型) 的完整代码,使用 中文语料 进行训练,包括数据预处理、模型定义、训练和测试。 1. 主要特点 支持中文数据,基于 jieba 进行分词 使用 Skip-gram 进行训练,适用于小数据集 支持负采样,提升训练效率 使用 cosine similarity 计算相…...
彩色控制台,自动换行...学习个新概念:流操控器![more cpp--11]
孩子们,我回来了。先看看今天我又学了什么CPP的没啥用新特性。彩色的控制台! 还有很多的新花样! 事情要从去年八月讲起,我那个时候在研究流函数,写了一些比较愚笨的代码。 为什么要研究这个呢?虽然我们的C…...
基于单片机的盲人智能水杯系统(论文+源码)
1 总体方案设计 本次基于单片机的盲人智能水杯设计,采用的是DS18B20实现杯中水温的检测,采用HX711及应力片实现杯中水里的检测,采用DS1302实现时钟计时功能,采用TTS语音模块实现语音播报的功能,并结合STC89C52单片机作…...
TensorFlow 示例摄氏度到华氏度的转换(一)
TensorFlow 实现神经网络模型来进行摄氏度到华氏度的转换,可以将其作为一个回归问题来处理。我们可以通过神经网络来拟合这个简单的转换公式。 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 …...
win10部署本地deepseek-r1,chatbox,deepseek联网(谷歌网页插件Page Assist)
win10部署本地deepseek-r1,chatbox,deepseek联网(谷歌网页插件Page Assist) 前言一、本地部署DeepSeek-r1step1 安装ollamastep2 下载deepseek-r1step2.1 找到模型deepseek-r1step2.2 cmd里粘贴 后按回车,进行下载 ste…...
【memgpt】letta 课程6: 多agent编排
Lab 6: Multi-Agent Orchestration 多代理协作 letta 是作为一个服务存在的,app通过restful api 通信 多智能体之间如何协调与沟通? 相互发送消息共享内存块,让代理同步到不同的服务的内存块...
Java 大视界 -- Java 大数据在自动驾驶中的数据处理与决策支持(68)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
【Linux】opencv在arm64上提示找不到libjasper-dev
解决opencv在arm64上提示找不到libjasper-dev的问题。 本文首发于❄慕雪的寒舍 问题说明 最近我在尝试编译opencv,安装依赖项libjasper1和libjasper-dev的时候就遇到了这个问题。在amd64平台上,我们可以通过下面的命令安装(ubuntu18.04&…...
计算机组成原理——存储系统(一)
在人生的道路上,成功与失败交织成一幅丰富多彩的画卷。不论我们是面对胜利的喜悦,还是遭遇失败的痛苦,都不能放弃对梦想的追求。正是在这种追求中,我们不断地超越自我,不断地突破自己的极限。只有勇往直前,…...
【LLM-agent】(task4)搜索引擎Agent
note 新增工具:搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件…...
LabVIEW在电机自动化生产线中的实时数据采集与生产过程监控
在电机自动化生产线中,实时数据采集与生产过程监控是确保生产效率和产品质量的重要环节。LabVIEW作为一种强大的图形化编程平台,可以有效实现数据采集、实时监控和自动化控制。详细探讨如何利用LabVIEW实现这一目标,包括硬件选择、软件架构设…...
Baklib揭示内容中台与人工智能技术的创新协同效应
内容概要 在当今信息爆炸的时代,内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合,为企业提供了一种新颖的解决方案,使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心,能够集中管…...
18.Word:数据库培训课程❗【34】
目录 题目 NO1.2.3.4 NO5设置文档内容的格式与样式 NO6 NO7 NO8.9 NO10.11标签邮件合并 题目 NO1.2.3.4 FnF12:打开"Word素材.docx”文件,将其另存为"Word.docx”在考生文件夹下之后到任务9的所有操作均基于此文件:"Word.docx”…...
git多人协作
目录 一、项目克隆 二、 1、进入克隆仓库设置 2、协作处理 3、冲突处理 4、多人协作分支的推送拉取删除 1、分支推送(2种) 2、远程分支拉取(2种) 3、远程分支删除 一、项目克隆 git clone 画船听雨眠/test1 (自定义的名…...
团体程序设计天梯赛-练习集——L1-030 一帮一
前言 一道15分的题目,难度还可以,题目的内容都在幻想中,看题 L1-030 一帮一 “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个…...
什么是线性化PDF?
线性化PDF是一种特殊的PDF文件组织方式。 总体而言,PDF是一种极为优雅且设计精良的格式。PDF由大量PDF对象构成,这些对象用于创建页面。相关信息存储在一棵二叉树中,该二叉树同时记录文件中每个对象的位置。因此,打开文件时只需加…...
DRM系列四:初始化drm设备--drm_dev_init
本系列文章基于linux 5.15 一、drm_dev_alloc 用于分配并初始化一个新的 DRM 设备(即drm_device),初始化主要调用drm_dev_init函数 1.1drm_dev_init drm_device的初始化操作,但是并不会注册,函数定义在drivers/gpu/drm/drm_drv.c 其主要的作用&#…...
SpringMVC的参数处理
一、参数接收 1.使用servlet API接收参数 在方法参数中添加HttpServletRequest类型的参数,然后就可以像servlet的方法一样来接收参数 2.在方法中定义同名参数 如果url地址中的参数名与方法的参数名不一致时,可以使用RequestParam注解进行重新关联 url地…...
一觉醒来全球编码能力下降100000倍,新手小白的我决定科普C语言——函数
1. 函数的概念 数学中我们其实就⻅过函数的概念,⽐如:⼀次函数 y kx b ,k和b都是常数,给⼀个任意的 x,就得到⼀个y值。其实在C语⾔也引⼊函数(function)的概念,有些翻译为…...
