贵州大学oj平台软工24-11-27第5次小测

题目:阶乘和函数

题目描述

设计一个计算阶乘和的函数,用于求1!+2!+...+n!并返回结果。

其中n是函数的参数。

程序的开始部分及main函数已经写好如下:

#include <stdio.h> 

double factSum(int n);

int main(){
    int n;
    scanf("%d",&n);
    printf("%.0f",factSum(n));
    return 0;
}

你只需完成所需函数并提交该函数的代码。请不要重复提交main函数。

输入描述

输入正整数n,测试数据保证n是正整数

输出描述

输出1!+2!+...+n!的结果

样例输入

5

样例输出 

153

题解

double factSum(int n){double sum=0;double m;for(int i=1;i<n+1;i++){m=1;for(int j=i;j>0;j--){m*=j;}sum+=m;}return sum;
}

题目:矩阵平均值函数

题目描述

设计一个计算double型矩阵平均值的函数,该函数返回参数指定的矩阵的平均值。

main函数已经写好如下:

int main(){
    int n;
    scanf("%d",&n);
    double a[n][5];
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<5;j++){
            scanf("%lf",&a[i][j]);
        } 

    //函数调用,传递矩阵行数及数组名

    double avg = avgArray(n,a); 
    printf("%.2f\n",avg);
    return 0;
}

你只需完成所需函数并提交该函数的代码,其他代码已经写好。请不要重复提交main函数。

输入描述

第一行输入正整数n,测试数据保证n为正整数

接下来输入n行5列的所有数组元素

输出描述

输出二维数组的平均值,小数点后保留两位数字

样例输入

3
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7 

样例输出

4.00 

题解

double avgArray(int n,double a[][5]){double sum=0;for(int i=0;i<n;i++){for(int j=0;j<5;j++){sum+=a[i][j];}}double re=sum/n/5;return re;
}

题目:查找次大(第二大)字符串函数

题目描述

设计一个函数,该函数用于查找n个(n大于等于3)字符串中的次大(第二大)字符串并返回其指针。

main函数已经写好如下:

int main(){
    int n,i;
    scanf("%d",&n);
    getchar();  //处理掉输入n之后的换行符
    char s[n][101];
    for(i=0;i<n;i++)
        gets(s[i]);
    //调用函数,传递字符串的个数及二维数组名
    char *pStr = findStr(n,s);
    puts(pStr);
    return 0;
}

你只需完成所需函数并提交该函数的代码,其他代码已经写好,stdio.h和string.h已包含。请不要重复提交main函数。

输入描述

第一行输入正整数n,测试数据保证n大于等于3。

从第二行起分n行输入n个不同的字符串。

输出描述

输出n个字符串中第二大的字符串

样例输入

3
abc
abd
aba 

样例输出

abc 

题解

 char *findStr(int n,char s[][101]){char *max=s[0];char *maxnd=s[1];int p=0;for(int i=0;i<n;i++){if(strcmp(max,s[i])<0){p=i;	max=s[i];}if(strcmp(maxnd,s[i])>0) maxnd=s[i];}for(int i=0;i<n;i++){if(i==p) continue;if(strcmp(maxnd,s[i])<0) maxnd=s[i];}return maxnd;}

题目:找假币

题目描述

现在有n枚硬币,其中有一枚是假的,假的硬币比真币轻,但也只轻一点点,而假币和真币的外观是一模一样的,从外观上无法辨别硬币的真假,请写程序找出假币。

程序的要求:

  1. 必须使用递归调用函数实现

  2. 递归函数原型必须为:int findFakeCoin(int *p, int low, int high)

  3. 程序中必须包含函数:int getSum(int *p, int start, int end)

  4. main函数已经写好,请编写程序剩余部分的代码并提交。

  main函数如下:  

    int main()

    {

        int coins[N];

        int m;

        int index;

        int getSum(int *p, int start, int end);

        int findFakeCoin(int *p, int low, int high);

    

        scanf("%d", &m);

        for (int i = 0; i < m; ++i)

        {

            scanf("%d", &coins[i]);

        }

        index = findFakeCoin(coins, 0, m - 1);

        printf("%d", index);

        return 0;

    }

输入描述

第一行为硬币的个数。

第二行为各个硬币的重量。

输出描述

输出数据为假币所在的位置。

样例输入

 8
2 2 2 2 2 2 2 1

样例输出

题解

int getSum(int* p, int start, int end){int sum = 0;for (int i = start; i <= end; i++){sum += *(p + i);}return sum;
}int findFakeCoin(int* p, int low, int high){if (low > high)return low;int mid = low + (high - low) / 2;if ((low + high) % 2 == 0){int lsum = getSum(p, low, mid-1);int rsum = getSum(p, mid + 1, high);if (lsum < rsum) return findFakeCoin(p, low, mid - 1);else if (lsum > rsum) return findFakeCoin(p, mid + 1, high);else return mid;}else{int lsum = getSum(p, low, mid);int rsum = getSum(p, mid + 1, high);if (lsum < rsum) return findFakeCoin(p, low, mid);else if (lsum > rsum) return findFakeCoin(p, mid + 1, high);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA实战篇(触摸按键控制LED灯)

1.触摸按键简介 触摸按键主要可分为四大类&#xff1a;电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同&#xff0c;每种触摸按键都有其合适的使用领域。 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成&#xff0c;但由于耐用性较差且维护复杂&#xff0c…

java基础概念47-ArrayList、LinkList和迭代器

一、ArrayList集合 1-1、ArrayList的两种添加信息的方式 1-2、ArrayList集合底层逻辑 1、利用空参创建的集合&#xff0c;在底层创建一个默认长度为0的数组 2、添加第一个元素时&#xff0c;底层会创建一个新的长度为10的数组 3、存满时&#xff0c;会扩容1.5倍。 4、如果…

Milvus python库 pymilvus 常用操作详解之Collection(下)

上篇博客 Milvus python库 pymilvus 常用操作详解之Collection&#xff08;上&#xff09; 主要介绍了 pymilvus 库中Collection集合的相关概念以及创建过程的代码实现&#xff0c;现在我们要在该基础上实现对于collection中插入数据的混合检索&#xff08;基于dense vector 和…

C++学习日记---第16天

笔记复习 1.C对象模型 在C中&#xff0c;类内的成员变量和成员函数分开存储 我们知道&#xff0c;C中的成员变量和成员函数均可分为两种&#xff0c;一种是普通的&#xff0c;一种是静态的&#xff0c;对于静态成员变量和静态成员函数&#xff0c;我们知道他们不属于类的对象…

Java基础之网络编程:开启网络通信的神秘之门

一、网络编程概述 网络编程是通过计算机网络进行数据传输和通信的编程技术&#xff0c;在 Java 中&#xff0c;我们可以使用丰富的网络编程功能和 API 来实现不同计算机之间的数据交互。 Java 网络编程是指在 Java 语言中使用网络协议和 API 进行网络通信的编程技术。Java 网络…

Go 语言函数编程指南:定义、调用技巧与返回值机制

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Go语言探索之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Go语言简介 2、Go语言的特点 二、函数定义 1、Go语言函数定义 2、函…

qt实现对pdf的编译、读、写、显示

PDFium 的下载和编译 PDFium 是一个开源的 PDF 渲染引擎,支持 PDF 的加载、解析和显示功能。1.1 下载 PDFium 源码 克隆 PDFium 的官方源码仓库: git clone https://pdfium.googlesource.com/pdfium.git cd pdfium 下载依赖项和工具链: gclient sync 1.2 配置编译环境 PDF…

在办公室环境中用HMD替代传统显示器的优势

VR头戴式显示器&#xff08;HMD&#xff09;是进入虚拟现实环境的一把钥匙&#xff0c;拥有HMD的您将能够在虚拟现实世界中尽情探索未知领域&#xff0c;正如如今的互联网一样&#xff0c;虚拟现实环境能够为您提供现实中无法实现的或不可能实现的事。随着技术的不断进步&#…

Springboot项目中子模块maven层级不一致的问题

&#xff08;一&#xff09;问题描述 campus-common、campus-pojo、campus-server都是campus-flower-system的子模块&#xff0c;但是只有campus-common在campus-flower-system下 &#xff08;二&#xff09;解决方法 打开父工程&#xff08;我这里是campus-flower-system&…

springboot-mybatis-plus集成篇

前言 MyBatis 最佳搭档&#xff0c;只做增强不做改变&#xff0c;为简化开发、提高效率而生。 简单用例 UserMapper.java Mapper public interface UserMapper extends BaseMapper<User> { }User.java TableName(value "user") public class User implem…

nginx配置http及https

nginx配置http及https 1.动静分离2.负载均衡3.配置https4.请求重定向5.常用参数配置介绍 现在日常工作中的项目大多数都是采用前后端分离&#xff0c;就用到了nginx进行反向代理、处理静态资源等&#xff1b;因此&#xff0c;记录整理了nginx一些常用的配置&#xff1b; 1.动静…

react学习记录

一、目录结构react优秀代码之react目录结构简洁之道React 作为一个库&#xff0c;不会决定你如何组织项目的结构。这是件好事&#xff0c;因为这样 - 掘金【React】项目的目录结构全面指南_react项目结构-CSDN博客 1、创建项目&#xff1a;开发文档 Getting Started | Create…

SpringBoot 架构下的在线家具商城:规划与实践之路

第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛运用&#xff0c;以及各种计算机硬件的完善和升…

ios上滚动条不能滑动 滚动卡住的问题

iosapp上viewweb h5不能滑动的问题 1.给滑动容器添加样式 overflow-x: hidden!important; overflow-y:scroll!important; touch-action: auto!important; -webkit-overflow-scrolling: touch!important;//惯性滑动2.html添加 <meta content"yes" name"appl…

二分搜索(二)搜索插入位置

35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: …

政府大数据应用启示

数据是基础性资源&#xff0c;也是重要生产要素。如何管理政府大数据资产&#xff0c;我国各部门还缺乏统一标准&#xff0c;如何利用大数据进行精细分析&#xff0c;仍处于探索起步阶段&#xff0c;应用分散。分析我国政府大数据应用的现状和特点&#xff0c;借鉴国外的有益经…

Ubuntu 20.04中的关键文件路径符号:根目录()与用户主目录()的详细解析及应用示例

Ubuntu 20.04中的关键文件路径符号&#xff1a;根目录(/)与用户主目录(~)的详细解析及应用示例 在Ubuntu 20.04 LTS中&#xff0c;理解文件路径是进行有效文件系统导航的基础。特别地&#xff0c;/和~是两个非常重要的符号&#xff0c;它们在文件路径中扮演着关键角色。这两个…

【阅读笔记】Android广播的处理流程

关于Android的解析&#xff0c;有很多优质内容&#xff0c;看了后记录一下阅读笔记&#xff0c;也是一种有意义的事情&#xff0c; 今天就看看“那个写代码的”这位大佬关于广播的梳理&#xff0c; https://blog.csdn.net/a572423926/category_11509429.html https://blog.c…

【C++boost::asio网络编程】有关异步读写api的笔记

异步读写api 异步写操作async_write_someasync_send 异步读操作async_read_someasync_receive 定义一个Session类&#xff0c;主要是为了服务端专门为客户端服务创建的管理类 class Session { public:Session(std::shared_ptr<asio::ip::tcp::socket> socket);void Conn…

Bootstrap Blazor MAUI开发的App实现检查更新

1、开发更新服务接口 namespace UpdateApkpublic interface IUpgradeService {/// <summary>/// 检查更新/// </summary>/// <param name"url">/// 检查URL/// </param>/// <returns></returns>Task<Dictionary<string, …