FaFu--练习复盘--2

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;
 }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git22端口超时

笔记本换了个主板后&#xff0c;将内容用git上传到GitHub时发现22端口超时。 以为是网络啥的原因&#xff0c;但是用ssh -T gitgithub.com进行多次测试&#xff0c;发现不是网络问题。按照网上操作&#xff0c;在.ssh文件夹内将config文件进行修改&#xff0c;改成&#xff1a;…

python爬取图片(thumbURL和html文件标签分别爬取)

当查看源代码&#xff0c;发现网址在thumbURL之后时&#xff0c;用此代码: # 当查看源代码&#xff0c;发现网址在thumbURL之后时&#xff0c;用此代码:import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121…

cs231n assignment1——SVM

整体思路 加载CIFAR-10数据集并展示部分数据数据图像归一化&#xff0c;减去均值&#xff08;也可以再除以方差&#xff09;svm_loss_naive和svm_loss_vectorized计算hinge损失&#xff0c;用拉格朗日法列hinge损失函数利用随机梯度下降法优化SVM在训练集和验证集计算准确率&a…

vue项目执行依赖安装(npm i或npm install )报ls-remote -h -t异常

从git拉取的vue项目执行依赖安装时一直报错&#xff0c; 报错如下图&#xff1a;首先&#xff0c;查看了node版本、npm配置的镜像地址均没找到解决办法。 在命令行中直接输入git发现提示于是从网上搜到了一个博文https://blog.csdn.net/weixin_49159364/article/details/118198…

【LeetCode】141. 环形链表

leetcode题目链接 141. 环形链表 #include <stdio.h> #include <stdbool.h>struct ListNode {int val;struct ListNode* next; }; typedef struct ListNode ListNode;bool hasCycle(ListNode* head) {ListNode* slow head, * fast head;while (fast &&…

2023年上半年网络工程师真题(1/3)

1.固态硬盘的存储介质是&#xff08;B&#xff09;。 A.光盘 B.闪存 C.软盘 D.磁盘 SSD存储介质是FLASH(一块块的存储芯片)&#xff0c;HDD(机械硬盘)存储介质是磁盘(机械臂和盘道)&#xff0c;补充:U盘的存储介质也是FLASH闪存。 2.虚拟存储技术把&#xff08;A&#xf…

最长公共前缀(Leetcode14)

例题&#xff1a; 分析&#xff1a; 我们可以先定义两个变量 i &#xff0c; j&#xff0c; j表示数组中的每一个字符串&#xff0c; i 表示每个字符串中的第几个字符。一列一列地进行比较&#xff0c;先比较第一列的字符&#xff0c;若都相同&#xff0c;则 i &#xff0c;继…

可视化 | 【echarts】渐变条形+折线复合图

文章目录 &#x1f4da;html css&#x1f4da;js&#x1f407;总体框架&#x1f407;option配置项 &#x1f4da;html css html&#xff1a;在这主要是用于整合&#xff0c;将html、css、js连接在一块&#xff0c;虽然单个模板代码量不大&#xff0c;但还是先分开&#xff0…

AI语音合成工具-Lalamu Studio

近期&#xff0c;Lalamu Studio开启了beta版本测试&#xff1a;Lalamu Studio。该工具整合了TTS和lip sync功能&#xff0c;可以让任意视频中的人物开口说话&#xff0c;并精确模拟口型。 例如&#xff0c;选择一段视频素材&#xff0c;添加由Ai合成的语音&#xff0c;即可完成…

MyBatis 系列:MyBatis 源码环境搭建

文章目录 一、环境准备二、下载 MyBatis 源码和 MyBatis-Parent 源码三、创建空项目、导入项目四、编译 mybatis-parent五、编译 mybatis六、测试总结 一、环境准备 jdk&#xff1a;17 maven&#xff1a;3.9.5 二、下载 MyBatis 源码和 MyBatis-Parent 源码 Mybatis&#x…

求职中遇到的性格测试

怎样才能不被刷? 最主要的就是自己的性格特征跟当前应聘的岗位是否相符合&#xff0c;这个符合程度越高&#xff0c;通过率自然也就越高。正规的做法都有一个岗位模型&#xff0c;也叫岗位胜任力模型。 以大五人格测试为例&#xff0c;完整版包含30个性格维度&#xff0c;从…

Pyro —— 简介

目录 Differences between legacy and sparse pyro Getting started with pyro using shelf tools Related pyro nodes Sourcing DOP simulation SOP simulation Post-Processing Rendering Simple FX shelf tools Pyro为Houdini的体积流体&#xff08;volumetric flu…

一篇文章搞懂什么是测试,测试是干什么的?

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

【STM32CubeMX串口通信详解】USART2 -- DMA发送 + DMA空闲中断 接收不定长数据

&#xff08; 本篇正在编写、更新状态中.....) 文章目录&#xff1a; 前言 前言 本篇&#xff0c;详细地用截图解释 CubeMX 对 USART2 的配置&#xff0c;HAL函数使用&#xff0c;和收发程序的编写。 收、发机制&#xff1a;DMA发送 DAM空闲中断接收。 DMA空…

Kafka-消费者-KafkaConsumer分析-Rebalance

在开始介绍Rebalance操作的实现细节之前&#xff0c;我们需要明确在哪几种情况下会触发Rebalance操作&#xff1a; 有新的消费者加入Consumer Group。有消费者宕机下线。消费者并不一定需要真正下线&#xff0c;例如遇到长时间的GC、网络延迟导致消费者长时间未向GroupCoordin…

ISA Server2006部署RuoYi无法登录的问题

ISA Server2006部署RuoYi无法正常登录。每次登录都会报错如下&#xff1a; 无效的会话&#xff0c;或者会话已过期&#xff0c;请重新登录。 原因分析 在nginx中部署没有问题&#xff0c;在ISA Server就会报这个错。根据登录的原理&#xff0c;我猜测可能是headr中的Author…

Linux:软件包管理器 yum

提示&#xff1a;以下指令均在Xshell 7 中进行 什么是软件包&#xff1f; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放…

JVM篇--垃圾回收高频面试题

JVM垃圾回收 1 简单说下Java垃圾回收机制&#xff1f; 首先在java运行过程中&#xff0c;其实程序员并不需要去显示的调用程序来释放对象的内存&#xff0c;而是由虚拟机来完成的&#xff0c;具体来看是在jvm中有个垃圾回收线程&#xff0c;这个线程是个守护线程&#xff0c;…

pytest实现多进程与多线程运行超好用的插件

前言 如果想分布式执行用例&#xff0c;用例设计必须遵循以下原则&#xff1a; 1、用例之间都是独立的&#xff0c; 2、用例a不要去依赖用例b 3、用例执行没先后顺序&#xff0c; 4、随机都能执行每个用例都能独立运行成功每个用例都能重复运行&#xff0c;不影响其它用例 这…

假设检验:以样本服从二项分布举例

目录 假设检验一、假设检验的思想二、假设检验的基本步骤1. 确定要进行检验的假设2. 选择检验统计量。3. 确定用于做决策的拒绝域4. 求出检验统计量的值5. 查看样本结果是否位于拒绝域内6. 做出决策 三、举例说明例子1——某公司治疗打鼾例子2——女士品茶的故事 假设检验 一、…