FaFu--练习复盘--2

news2024/10/5 13:32:59

3、函数练习

3.1、函数表达式(1)

描述

        根据以下公式计算数学表达式的值,并将结果作为函数值返回。在main()函数中输入x,调用函数fun(x),并输出fun(x)的值。

1.png

输入

        输入1行,包含1个double类型的浮点数,即输入的变量x。

输出

        输出1行,包含1个保留3位小数的double类型的浮点数,即输出的函数值。

输入样例 1                                                 输入样例 2 

0.26                                                                8.5

输出样例 1                                                输出样例 2

0.265                                   1.904

具体实现

#include <stdio.h>
#include<math.h>
double fun(double x) {
	double y;
	if (x>=0)
		y=(3*x*sin(x)+tan(x) )/(1.5+x);
	else
		y=(3*x*sin(x)+tan(x) )/(1.5-x);
	return y;
}

int main (){
double x;
scanf("%lf",&x);
printf("%.3lf",fun(x));
return 0;
}

3.2、 函数表达式(2)

描述

        根据以下公式计算数学表达式的值,并将结果作为函数值返回。在main()函数中输入x,调用函数fun(x),并输出fun(x)的值。

2.png

输入

        输入1行,包含1个double类型的浮点数,即输入的变量x。

输出

        输出1行,包含1个保留3位小数的double类型的浮点数,即输出的函数值。

输入样例 1                                         输入样例 2 

0.26                                 18.5

输出样例 1                                        输出样例 2

0.607                                342.250

具体实现

#include <stdio.h>
#include<math.h>
double fun(double x) {
	double y;
	if (x<10)
		y=(sqrt(2.5+cos(x)))/(x*sin(x)+3);
	else
		y=x*x;
	return y;
}

int main (){
double x;
scanf("%lf",&x);
printf("%.3lf",fun(x));
return 0;
}

3.3、实现找素数函数

描述

        完成函数IsPrime(int x),该函数用于判断整数x是否为素数,并将判断结果作为函数值返回。在main()函数中输入2个正整数m和n分别作为区间的上、下界,调用函数IsPrime(x)求[m,n]区间内所有素数,并按从小到大的次序输出。

输入

        输入1行,包含2个整数,即正整数m和n,两个整数之间用空格隔开。

输出

        输出1行,包含多个整数,每个整数之间用空格隔开。

输入样例 1                                                输入样例 2 

2 15                                  10 30

输出样例 1                                                输出样例 2

2 3 5 7 11 13                        11 13 17 19 23 29

具体实现

#include <stdio.h>
#include<math.h>
int fun(int m,int n) {
	for (;m<=n;m++)
	{
		int i;
		for (i=2;i<m;i++) if (m%i==0) break;
		if (i==m) printf ("%d ",m);
	}
}

int main (){
	int m,n;
	scanf("%d%d",&m,&n);
	fun(m,n);
return 0;
}

3.4、可逆素数

描述

        完成函数IsPrime(int x)和函数Reverse(int x)。函数IsPrime(x)用于判断整数x是否为素数;函数Reverse(x)用于求整数x反序数(即将各位数字的顺序倒过来)。在main()函数中输入2个正整数m和n分别作为区间的上、下界,调用函数IsPrime(x)和函数Reverse(x)求[m, n]区间内所有可逆素数(即一个素数的反序数也是素数),并按从小到大的次序输出。

输入

        输入1行,包含2个整数,即正整数m和n,两个整数之间用空格隔开。

输出

        输出1行,包含多个整数,每个整数之间用空格隔开。

输入样例 1 

10 50

输出样例 1

11 13 17 31 37

具体实现

#include <stdio.h>
#include<math.h>
int fun(int m,int n) {
	int i,j,k;
	int a,b,c,d;	
	for (;m<=n;m++){
		for (i=2;i<m;i++) if (m%i==0) break;
		if (i==m){
			a=m%10;
			b=m%100-a;
			c=(m-a-b)/100;
			if (m>100) d=a*100+b+c;
			else d=b/10+a*10;
			for (j=2;j<d;j++) if (d%j==0) break; 
			if (d==j) printf("%d ",m);
		}
	}
}

int main (){
int m,n; 
scanf("%d%d",&m,&n);
fun(m,n);
return 0;
}

3.5、 最大公约数

描述

        完成函数Gcd(int x, int y),该函数用于求整数x和y的最大公约数,并返回最大公约数。在main()函数中输入两个正整数a和b,调用函数Gcd求这两个整数的最大公约数,并输出求解结果。

输入

        输入1行,包含2个整数,即正整数a和b,整数之间用空格隔开。

输出

        输出1行,包含1个整数,即最大公约数。

输入样例 1 

15 25

输出样例 1

5

具体实现

#include <stdio.h>
#include<math.h>
int Gcd(int a,int b) {
	int rem;		
	while(b > 0){
		rem = a % b;
		a = b;
		b = rem;
	}
	return a;
}

int main (){
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d",Gcd(a,b));
return 0;
}

3.6、基于最大公约数的最小公倍数

描述

        完成函数Gcd(int x, int y),该函数用于求整数x和y的最大公约数,并返回最大公约数。在main()函数中三个正整数a、b和c,调用函数Gcd求这个三个整数的最大公约数和最小公倍数,并输出求解结果。

输入

        输入1行,包含3个整数,即正整数a、b和c,整数之间用空格隔开。

输出

        输出1行,包括2个整数,即最大公约数和最小公倍数。

输入样例 1 

2 4 6

输出样例 1

2 12

具体实现

#include <stdio.h>
int Gcd(int x,int y){	//用于求整数x和y的最大公约数
	int r;
	//**************************************
	if (x < y){ //swap(x, y)
		r = x; 
		x = y;
		y = r;
	}
	
	//递归法(辗转相除法)求最大公约数
	if(y==0){
		return x;
	}else{
		return Gcd(y, x%y);
	}
	
	//======================================
}

int main(){
	int a,b,c,t1,t2, t3, t4, t5;	//a,b,c-用于求最大公约数和最小公倍数的三个整数,
	
	scanf("%d%d%d",&a,&b,&c);	//输入(接收)待求最大公约数和最小公倍数的3个整数
	//**************************************
	t1 = Gcd(a, b);		//求整数a 和 b的最大公约数t1
	
	t2 = Gcd(t1, c);	//求整数t1 和 c的最大公约数t2 —— 三个数的最大公约数

	t3 = (a * b)/t1;	//求整数a 和 b的【最小公倍数】t3

	t4 = Gcd(t3, c);	//求整数t3 和 c的最大公约数t4

	t5 = (t3 * c)/t4;	//求整数t3 和 c的【最小公倍数】t5 —— 三个数的【最小公倍数】
	
	printf("%d %d\n", t2, t5);
	//======================================
	return 0;
}

=================================================================
#include <stdio.h>
int Gcd(int x,int y){
	while(y^=x^=y^=x%=y);
    return x;
}

int main(){
	int a,b,c,t1,t2;
	
	scanf("%d%d%d",&a,&b,&c);
	//**************************************
	t1 = Gcd(Gcd(a, b),c);
	t2 = (((a * b)/Gcd(a, b)) * c)/Gcd((a * b)/Gcd(a, b), c);	
	printf("%d %d\n", t1, t2);
	//======================================
	return 0;
}

3.7、 寻找最大平均偏差元素

描述

        完成函数find(int a[], int n),该函数用于找出数组a中与所有元素的平均值绝对偏差最大的元素,并返回该元素值。在main()函数中输入数组a各元素的值以及元素个数n,调用函数find求解与平均值绝对偏差最大的元素,并输出求解结果。

输入

        输入2行,第1行有1个整数,即元素个数n,第2行有n个整数,即数组a的元素值,整数之间用空格隔开。  

输出

        输出1行,包含1个整数,即与平均值绝对偏差最大的元素。

输入样例 1 

10
23 21 5 98 89 12 86 80 8 61

输出样例 1

98

具体实现

#include <stdio.h>
#include<math.h>
int find(int a[],int n) {
	int i,c,k,sum=0,avg=0;
	c=abs(a[0]-avg);
	k=0;
	for (i=0;i<n;i++)
		sum=sum+a[i];
		avg=sum/n;
	for (i=1;i<n;i++)
		if (fabs(a[i]-avg)>c){
			c=fabs(a[i]-avg);
			k=i;
		}
	return a[k];
}
int main (){
	int a[100];
	int i,n;
	scanf("%d",&n);
	for (i=0;i<n;i++)
		scanf("%d",&a[i]);
	printf("%d",find(a,n));
	return 0;
 }

3.8、 寻找最小平均偏差元素及其下标

描述

        完成函数find(int a[], int n),该函数用于找出数组a中与所有元素的平均值绝对偏差最小的元素,并返回该元素值以及该元素所在的下标。在main()函数中输入数组a各元素的值以及元素个数n,调用函数find求与平均值绝对偏差最小的元素及其下标,并输出求解结果。

输入

        输入有2行,第1行有1个整数,即元素个数n,第2行有n个整数,即数组a的元素值,整数之间用空格隔开。

输出

        输出有1行,包括2个整数,即与平均值绝对偏差最小的元素值和元素所在的下标。

输入样例 1 

10
23 21 5 98 89 12 86 80 8 61

输出样例 1

61 9

具体实现

#include <stdio.h>
#include <math.h>
struct eType{	
	int x;	
	int index;
};
eType find(int a[],int n){
	int k;	
	double avg=0.0, minDiff;
	for(int i=0; i<n; i++){
		avg += a[i];
	}
	if(n>0){
		avg /=n;
	}
	k=0;
	minDiff = fabs(a[0]-avg);
	for(int t=1; t<n; t++){
		if(fabs(a[t]-avg) < minDiff){
			k=t;
			minDiff = fabs(a[t]-avg);
		}
	}
	struct eType rs={a[k], k};
	return rs;	
}
int main(){
	int a[100];	
	int i,n;	
	eType f;
	scanf("%d",&n);			
	for (i=0;i<n;i++)
		scanf("%d",&a[i]);	
	f = find(a, n);		
	printf("%d %d\n", f.x, f.index);
	return 0;
}

3.9、 递归计算阶乘和

描述

        完成递归函数fact(int n),该函数用递归调用方法求n!的值,并返回该值。在main()函数中输入整数n,通过调用函数fact,求1!+2!+…+n!的值。

输入

        输入1行,包含1个整数,即输入的整数n。

输出

        输出1行,包含1个整数,即1!+2!+…+n!的值。

输入样例 1 

3

输出样例 1

9

具体实现

#include <stdio.h>
#include<math.h>
int sum(int n) {
	int f;
	if(n==1) 
      f=1;
	else  
      f=sum(n-1)*n;
	return f;
}
int main ()
{
	int i,n;
	long s=0;
	scanf("%d",&n);
	for (i=1;i<n+1;i++)
		s=s+sum(i);
	printf ("%d",s);
	return 0;
 }

3.10、递归计算累加数列和

描述

        完成递归函数fan(int a, int n),该函数递归调用方法求aa…a(n个a)的值。在main()函数中输入整数n,通过调用函数fan,求a+aa+aaa+aa…a(n个a)的值。2

输入

        输入1行,包含2个整数,即输入的整数a和n,整数之间用空格分隔。

输出

        输出1行,包含1个整数,a+aa+aaa+aa…a(n个a)的值。

输入样例 1 

2 3

输出样例 1

246

具体实现

#include <stdio.h>
#include<math.h>
int sum(int a,int n) {
	int i;
	long sn,sum=0;
 		sn=0;
	 for(i=1;i<=n;i++){
 		sn=a+sn*10;
 		sum=sum+sn;
	 }
	 return sum;
}
int main ()
{
	int a,n;
	scanf("%d%d",&a,&n);
	printf("%d",sum(a,n));
 }

3.11、宏实现的区间整除性检查

描述

        编写带参数的宏P,实现求2个整数相除的余数。在main()函数中输入2个正整数m和n分别作为区间的上、下界,利用宏P求[m,n]区间所有既被3整除也被7整除的数,并按从小到大的次序输出。

输入

        输入1行,包括2个整数,即正整数m和n,两个整数之间用空格隔开。

输出

        输出1行,包括多个整数,每个整数之间用空格隔开。

输入样例 1 

10 30

输出样例 1

21

具体实现

#include <stdio.h>
#define p(a,b) a%b
int main ()
{
	int m,n;
	scanf("%d%d",&m,&n);
	for (;m<=n;m++){
		if(p(m,3)==0 && p(m,7)==0)
			printf ("%d ",m);	
	}
 return 0;
 }

3.12、 三数最大值宏计算器

描述

        编写带参数的宏MAX,实现求两数中的较大值。在main()函数中输入3个整数x、y和z,利用宏MAX求这三个数的最大值。

输入

        输入1行,包括3个整数,即输入的整数x、y和z,整数之间用空格隔开。

输出

        输出1行,包括1个整数,即三个数的最大值。

输入样例 1 

100 800 300

输出样例 1

800

具体实现

#include <stdio.h>
#define MAX(a,b,c) c>(a>b?a:b)?c:(a>b?a:b)
int main ()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("%d",MAX(a,b,c));
 return 0;
 }

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

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

相关文章

数学建模实战Matlab绘图

二维曲线、散点图 绘图命令&#xff1a;plot(x,y,’line specifiers’,’PropertyName’,PropertyValue) 例子&#xff1a;绘图表示年收入与年份的关系 ‘--r*’:--设置线型&#xff1b;r:设置颜色为红色&#xff1b;*节点型号 ‘linewidth’&#xff1a;设置线宽&#xff1…

基于springboot+vue考编论坛

摘要 近年来&#xff0c;随着互联网的迅猛发展&#xff0c;编程论坛成为程序员们交流学术、分享经验的重要平台之一。为了满足广大程序员的需求&#xff0c;本文基于Spring Boot和Vue框架&#xff0c;设计并实现了一个功能强大的编程论坛。首先&#xff0c;我们选择Spring Boot…

RHEL - 更新升级软件或系统

《OpenShift / RHEL / DevSecOps 汇总目录》 文章目录 小版本软件更新yum update 和 yum upgrade 的区别升级软件和升级系统检查软件包是否可升级指定升级软件使用的发行版本方法1方法2方法3方法4 查看软件升级类型更新升级指定的 RHSA/RHBA/RHEA更新升级指定的 CVE更新升级指定…

当 OpenTelemetry 遇上阿里云 Prometheus

作者&#xff1a;逸陵 背景 在云原生可观测蓬勃发展的当下&#xff0c;想必大家对 OpenTelemetry & Prometheus 并不是太陌生。OpenTelemetry 是 CNCF&#xff08;Cloud Native Computing Foundation&#xff09;旗下的开源项目&#xff0c;它的目标是在云原生时代成为应…

Softmax函数介绍

Softmax函数是一种常用的激活函数&#xff0c;用于将一组实数值转换为概率分布。它常用于多类别分类问题中&#xff0c;将输入向量映射为各个类别的概率。 Softmax函数的公式如下&#xff1a; 其中&#xff0c;示输入向量的第 &#xfffd;i 个元素&#xff0c;&#xfffd;n …

【目标检测】YOLOv5算法实现(九):模型预测

本系列文章记录本人硕士阶段YOLO系列目标检测算法自学及其代码实现的过程。其中算法具体实现借鉴于ultralytics YOLO源码Github&#xff0c;删减了源码中部分内容&#xff0c;满足个人科研需求。   本系列文章主要以YOLOv5为例完成算法的实现&#xff0c;后续修改、增加相关模…

RHCE上课笔记(前半部分)

第一部分 网络服务 第一章 例行性工作 1.单一执行的例行性工作 单一执行的例行性工作&#xff08;就像某一个时间点 的闹钟&#xff09;&#xff1a;仅处理执行一次 1.1 at命令&#xff1a;定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at at-spi2-core-2.40.3-1.el9.x…

SDCMS靶场通过

考察核心&#xff1a;MIME类型检测文件内容敏感语句检测 这个挺搞的&#xff0c;一开始一直以为检查文件后缀名的&#xff0c;每次上传都失败&#xff0c;上传的多了才发现某些后缀名改成php也可通过&#xff0c;png图片文件只把后缀名改成php也可以通过&#xff0c;之前不成功…

最全机器学习预测全家桶,持续更新!看这一篇绝对够了!MATLAB代码

全家桶一直在持续更新中&#xff0c;截止到本期&#xff0c;一共发了7篇关于机器学习预测全家桶的文章。且后续还会继续更新。参考文章如下&#xff1a; 1.五花八门的机器学习预测&#xff1f;一篇搞定不行吗&#xff1f; 2.机器学习预测全家桶&#xff0c;多步预测之BiGRU、Bi…

阿里云国外服务器多少钱一个月?24元/月

阿里云国外服务器优惠活动「全球云服务器精选特惠」&#xff0c;国外服务器租用价格24元一个月起&#xff0c;免备案适合搭建网站&#xff0c;部署独立站等业务场景&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动&#xff1a; 全球云服务器精选特惠…

代码随想录刷题题Day38

刷题的第三十八天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day38 任务 ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组 1 最长递增子序列 300.最长递增子序列 …

运筹说 第107期 | 排队论创始人——阿格纳·克拉鲁普·爱尔朗

前面我们已经了解了非线性规划的相关内容&#xff0c;相信大家一定也有所收获&#xff0c;下面我们将带着大家继续了解排队论的相关内容&#xff0c;在本次文章中我们将一起走近排队论的奠基人——阿格纳克拉鲁普爱尔朗&#xff08;Agner Krarup Erlang&#xff09;&#xff0c…

x-cmd pkg | jieba - 中文结巴分词工具

目录 简介首次用户功能特点竞品分析进一步阅读 简介 结巴中文分词&#xff08;jieba&#xff09;是一款在 Python 环境下使用的开源中文文本分词工具。它支持多种分词模式&#xff0c;包括精确模式、全模式和搜索引擎模式&#xff0c;同时支持繁体分词和自定义词典。因其易用性…

【JavaEE】_基于UDP实现网络通信

目录 1. 服务器 1.1 实现逻辑 1.2 代码 1.3 部分代码解释 2. 客户端 2.1 实现逻辑 2.2 代码 2.3 客户端部分代码解释 3. 程序运行结果 4. 服务器客户端交互逻辑 此篇内容为实现UDP版本的回显服务器echo server&#xff1b; 普通服务器&#xff1a;收到请求&#xff…

Unity中ShaderGraph下获取主灯

文章目录 前言一、ShaderGraph获取主灯1、创建ShaderGraph2、创建一个自定义方法&#xff08;Custom Function&#xff09;节点3、新建两个 Vector3 类型的输出变量4、选择自定义节点程序体为 string 类型5、编写程序体6、我们输出主光方向看看效果7、我们输出主光颜色看看效果…

ios适配虚拟home键

在H5开发过程中遇到一个兼容性问题。iphone手机的虚拟home键会对屏幕底部的内容造成遮挡。要处理此问题&#xff0c;需要清楚安全区域这个概念。 安全区域 根据刘海和虚拟Home键&#xff0c;Apple为其设备提供了屏幕安全区域的视觉规范 竖屏&#xff1a;竖屏的时候&#xff…

「优选算法刷题」:查找总价格为目标值的两个商品

一、题目 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况&#xff0c;返回任一结果即可。 示例 1&#xff1a; 输入&#xff1a;price [3, 9, 12, 15], target 18 输出&#xff1a;[3,15] 或者 [15,3]示例…

OpenCV-Python(49):图像去噪

目标 学习使用非局部平均值去噪算法去除图像中的噪音学习函数cv2.fastNlMeansDenoising()、cv2.fastNlMeansDenoisingColored等 原理 在前面的章节中我们已经学习了很多图像平滑技术&#xff0c;比如高斯平滑、中值平滑等。当噪声比较小时&#xff0c;这些技术的效果都是很好…

【Qt之模型视图】1. 模型和视图架构

1. 模型/视图架构是什么及有什么用 MVC&#xff08;Model-View-Control&#xff09;是一种源自Smalltalk的设计模式&#xff0c;通常用于构建用户界面。 MVC由三种类型的对象组成。模型是应用对象&#xff0c;用来表示数据&#xff1b;视图是模型的用户界面&#xff0c;用来显…

Miracast无线投屏的操作步骤

家里有台老爷机&#xff0c;估计在10年以上了。内核屏显还是HD 4400。今天原本在尝试挂蓝牙音箱&#xff0c;没整成。意外地激活了无线投屏。Miracast是一个wifi本身的功能包&#xff0c;可以让台式机通过wifi与屏幕互联&#xff0c;不必通过hdmi线。 Step1.确认无线投屏能力&…