首页 > 其他分享 >贵州大学oj平台软工24-11-27第5次小测

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

时间:2024-12-03 21:01:31浏览次数:5  
标签:24 11 return 函数 int double 贵州大学 low main

题目:阶乘和函数

题目描述

设计一个计算阶乘和的函数,用于求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);
	}
}

标签:24,11,return,函数,int,double,贵州大学,low,main
From: https://blog.csdn.net/2403_87165681/article/details/144223583

相关文章

  • 新车变“风险车”?零跑C11刹车失灵,车主维权遭遇困境
    近日,据河南日报“大河汽车”报道,河南洛阳的张先生经历了一场惊心动魄的“生死时速”。他今年8月刚购置的零跑C11新车,在短短两个月的运营时间里,竟然遭遇了行驶中刹车失灵的严重故障,这一事件迅速引起了社会的广泛关注。张先生在洛阳坤盾网约车运营中心工作人员的推荐下,选择了......
  • P5711 【深基3.例3】闰年判断
    hello大家好,这里是栋瓜吖题目描述输入一个年份,判断这一年是否是闰年,如果是输出 11,否则输出 00。15821582 年以来,闰年的定义:普通闰年:公历年份是 44 的倍数,且不是 100100 的倍数的,为闰年(如 20042004 年、20202020 年等就是闰年)。世纪闰年:公历年份是整百数的,必须是......
  • E86 换根DP CF1324F Maximum White Subtree
    视频链接:E86换根DPCF1324FMaximumWhiteSubtree_哔哩哔哩_bilibili  MaximumWhiteSubtree-洛谷|计算机科学教育新生态//换根DPO(n)#include<bits/stdc++.h>usingnamespacestd;constintN=200005;vector<int>e[N];intn,a[N],f[N];voiddfs(int......
  • Litctf2024-郑州轻工业大学第二届ctf-校内赛道wp
    战队:怎落笔都不对最终成绩校内第4MISC1.盯帧珍珠打开文件发现是一个图片,放入010查看得文件头是gif格式改为gif后缀得到一个GIF图,在下面这个网站分解,即可得到flaghttps://33tool.com/gif_unzip/2.原铁,启动!打开发现是一个图片,里面是各种符号,根据题目描述去网上得......
  • H5-24 CSS盒子模型(Box Model)
    1、概念:所有HTML元素可以看作盒子,在CSS中,"boxmodel"这一术语是用来设计和布局时使用CSS盒模型本质上是一个盒子,封装周围的元素HTML元素,它包括:外边距(margin),边框(border),内边距(padding),和实际内容(content)Margin(外边距):清楚边框外的区域,外边距是透明的Border(边框):围绕在内边距和内容外......
  • 大数据新视界 -- 大数据大厂之 Hive MapReduce 性能调优实战(下)(24 / 30)
           ......
  • 245 微信+PHP+MYSQL+LW+基于微信的校园健身小程序的设计与实现 源码 配置 文档
    基于微信的校园健身小程序的设计与实现1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取1.摘要近几年来,随着我国居民生活水平的提高,人们对于健身养生保健方面也是尤为关注,而电子商务在基于互联网信息技术的发展而普及,近几年,随着微信小程序的应用成熟,也......
  • Springboot世界美食风情展示系统211wo
    Springboot世界美食风情展示系统211wo本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,美食类别,世界美食,美食攻略,美食订单开题报告内容一、项目背景在全球化的今天,美食文化已成为连接不同......
  • 20222420 2021-2022-2 《网络与系统攻防技术》实验七实验报告
    1.实验内容1.1实验内容简述本实践的目标为理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。(4)提出具体防范方法1.2近期学习内容(1)Web安全基础各种语言......
  • [题解](更新中)NOIP 2024 T1~T2
    编辑字符串(edit)初见感觉像贪心,但在不好写+不会证的情况下放弃了,然后想到DP又设不出状态。实际上……就是贪心哦?下文称\(s_1,s_2\)分别为\(a,b\)。不难发现一个不存在锁定位置的区间,其内元素是可以任意交换的。所以我们可以按照锁定位置,将两个字符串划分成若干个区间(被锁定......