当前位置: 首页 > news >正文

【PTA-C语言】实验七-函数与指针I

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    目录——实验七-函数与指针I

    • 6-1 弹球距离(分数 10)
    • 6-2 使用函数输出一个整数的逆序数(分数 10)
    • 6-3 使用函数求最大公约数(分数 10)
    • 6-4 使用函数求特殊a串数列和(分数 10)
    • 6-5 使用函数求素数和(分数 10)
    • 6-6 统计各位数字之和是5的数(分数 10)
    • 6-7 多项式求值(分数 10)
    • 6-8 分类统计各类字符个数(分数 10)

6-1 弹球距离(分数 10)

作者 DS课程组
单位 浙江大学

设有一个球从高度为 h h h米的地方落下,碰到地面后又弹到高度为原来 p p p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。

函数接口定义:

double dist( double h, double p );

其中h是球的初始高度,p是球弹起高度与弹起前落下高度的比值;函数dist要返回球下落后到基本停下来时在空中所经过的路程总和。注意:当弹起的高度小于裁判程序定义的常数TOL时,弹起的距离不计算在内。

裁判测试程序样例:

#include <stdio.h>
#define TOL 1E-3double dist( double h, double p );int main()
{double h, p, d;scanf("%lf %lf", &h, &p);d = dist(h, p);printf("%.6f\n", d);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

1.0 0.4

输出样例:

2.331149

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

double dist( double h, double p )
{if(p*h<TOL)return h;elsereturn h+p*h+dist(p*h, p);
}

6-2 使用函数输出一个整数的逆序数(分数 10)

作者 C课程组
单位 浙江大学

本题要求实现一个求整数的逆序数的简单函数。

函数接口定义:

int reverse( int number );

其中函数reverse须返回用户传入的整型number的逆序数。

裁判测试程序样例:

#include <stdio.h>int reverse( int number );int main()
{int n;scanf("%d", &n);printf("%d\n", reverse(n));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

-12340

输出样例:

-4321

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int reverse( int number ){int sum=0, result;if(number<0) {printf("-");number = -number;}while(number != 0) {result = number % 10;sum = sum * 10 + result;number /= 10;}return sum;
}

6-3 使用函数求最大公约数(分数 10)

作者 张高燕
单位 浙大城市学院

本题要求实现一个计算两个数的最大公约数的简单函数。

函数接口定义:

int gcd( int x, int y );

其中xy是两个正整数,函数gcd应返回这两个数的最大公约数。

裁判测试程序样例:

#include <stdio.h>int gcd( int x, int y );int main()
{int x, y;scanf("%d %d", &x, &y);printf("%d\n", gcd(x, y));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

32 72

输出样例:

8

感谢集美大学蓝华斌同学修正测试数据!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int gcd(int x, int y)
{int temp;while(y){temp=x%y;x=y;y=temp;}return x;
}

6-4 使用函数求特殊a串数列和(分数 10)

作者 张高燕
单位 浙江大学

给定两个均不超过9的正整数 a a a n n n,要求编写函数求 a + a a + a a a + + ⋯ + a a ⋯ a a+aa+aaa++⋯+aa⋯a a+aa+aaa+++aaa n n n a a a)之和。

函数接口定义:

int fn( int a, int n );
int SumA( int a, int n );

其中函数fn须返回的是na组成的数字;SumA返回要求的和。

裁判测试程序样例:

#include <stdio.h>int fn( int a, int n );
int SumA( int a, int n );int main()
{int a, n;scanf("%d %d", &a, &n);printf("fn(%d, %d) = %d\n", a, n, fn(a,n));        printf("s = %d\n", SumA(a,n));    return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

2 3

输出样例:

fn(2, 3) = 222
s = 246

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int fn(int a, int n)
{int sum=0, i;for(i=0; i<n; i++)sum=sum*10+a;return sum;
}
int SumA(int a, int n)
{int sum=0, i;for(i=1; i<=n; i++)sum += fn(a, i);return sum;
} 

6-5 使用函数求素数和(分数 10)

作者 张高燕
单位 浙大城市学院

本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

函数接口定义:

int prime( int p );
int PrimeSum( int m, int n );

其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数mn

裁判测试程序样例:

#include <stdio.h>
#include <math.h>int prime( int p );
int PrimeSum( int m, int n );int main()
{int m, n, p;scanf("%d %d", &m, &n);printf("Sum of ( ");for( p=m; p<=n; p++ ) {if( prime(p) != 0 )printf("%d ", p);}printf(") = %d\n", PrimeSum(m, n));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

-1 10

输出样例:

Sum of ( 2 3 5 7 ) = 17

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int prime(int p){int i;if(p<2)return 0;else if(p==2)return 1;elsefor(i=2; i<=sqrt(p); i++)if(p%i==0)return 0;return 1;
}
int PrimeSum( int m, int n )
{int i, sum=0;for(i=m; i<=n; i++)if(prime(i)==1)sum += i;return sum;
}

6-6 统计各位数字之和是5的数(分数 10)

作者 颜晖
单位 浙江大学

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

函数接口定义:

int is( int number );
void count_sum( int a, int b );

函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0

函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

count = 满足条件的整数个数, sum = 这些整数的和

进行输出。题目保证0<ab≤10000。

裁判测试程序样例:

#include <stdio.h>int is( int number );
void count_sum( int a, int b );int main()
{int a, b;scanf("%d %d", &a, &b);if (is(a)) printf("%d is counted.\n", a);if (is(b)) printf("%d is counted.\n", b);count_sum(a, b);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

104 999

输出样例:

104 is counted.
count = 15, sum = 3720

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int is( int number)
{int s=0, t;while(number!=0) {t = number%10;number /= 10;s += t;}if(s==5)return 1;else return 0;
}
void count_sum( int a, int b )
{int sum=0, count=0, i;for(i=a; i<=b; i++)if(is(i)){count++;sum += i;}printf("count = %d, sum = %d\n", count, sum);
}

6-7 多项式求值(分数 10)

作者 陈越
单位 浙江大学

本题要求实现一个函数,计算阶数为n,系数为a[0]a[n]的多项式
https://img-blog.csdnimg.cn/direct/b823b7406fe14e029c576cdddae2755a.png
x点的值。

函数接口定义:

double f( int n, double a[], double x );

其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

裁判测试程序样例:

#include <stdio.h>#define MAXN 10double f( int n, double a[], double x );int main()
{int n, i;double a[MAXN], x;scanf("%d %lf", &n, &x);for ( i=0; i<=n; i++ )scanf("%lf", &a[i]);printf("%.1f\n", f(n, a, x));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

2 1.1
1 2.5 -38.7

输出样例:

-43.1

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

double f( int n, double a[], double x )
{double sum=0, t=1.0;for(int i=0; i<=n; i++) {sum += a[i]*t; t *= x;}return sum;
}

6-8 分类统计各类字符个数(分数 10)

作者 C课程组
单位 浙江大学

本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

函数接口定义:

void StringCount( char *s );

其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照

大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数

的格式输出。

裁判测试程序样例:

#include <stdio.h>
#define MAXS 15void StringCount( char *s );
void ReadString( char *s ); /* 由裁判实现,略去不表 */int main()
{char s[MAXS];ReadString(s);StringCount(s);return 0;
}/* Your function will be put here */

输入样例:

aZ&*?
093 Az

输出样例:

2 2 1 3 4

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

void StringCount( char *s ){int i, n=strlen(s), up=0, low=0, blo=0, num=0, els=0;for(i=0; i<n; i++)if('A'<=s[i] && s[i]<='Z')up++;else if('a'<=s[i] &&s [i]<='z')low++;else if(s[i]==' ')blo++;else if('0'<=s[i] && s[i]<='9')num++;elseels++;printf("%d %d %d %d %d", up, low, blo, num, els);
}

相关文章:

【PTA-C语言】实验七-函数与指针I

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 目录——实验七-函数与指针I 6-1 弹球距离&#xff08;分数 10&#xff09;6-2 使用函数输出一个整数的逆序数&#xff08;分数 10&#xff09;6-3 使用函数求最大公约数&#xff08;分数 10&#xff09;6-4…...

C# 让数据保留小数后两位,不足的补充0

在C#中&#xff0c;可以使用Math.Floor、Math.Ceiling或者Math.Round方法结合字符串格式化来实现小数点后两位的保留&#xff0c;并在不足的情况下补充0。 以下是一个例子&#xff1a; double value 1.2345; string formattedValue value.ToString("0.00"); // 输…...

RK3568驱动指南|第九篇 设备模型-第92章 引用计数器实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…...

苹果电脑Dock栏优化软件 mac功能亮点

hyperdock mac是一款Dock优化软件&#xff0c;hyperdock支持使用窗口自动排列功能&#xff0c;您可以直接通过将窗口拖拉至屏幕上方来快速最大化至全屏&#xff0c;又或者拖动到左右来进行左分屏和右分屏。而且Dock优化软件还有一个特色便是对Dock的强大管理哪里能力&#xff0…...

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在&#xff0c;生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在&#xff0c;直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大&#xff0c;导致效果不理想&#xff0c;建议先往小填写。 2.选对…...

ACM32F403/F433 12 位多通道国产芯片,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中

ACM32F403/F433 芯片的内核基于 ARMv8-M 架构&#xff0c;支持 Cortex-M33 和 Cortex-M4F 指令集。芯片内核 支持一整套DSP指令用于数字信号处理&#xff0c;支持单精度FPU处理浮点数据&#xff0c;同时还支持Memory Protection Unit &#xff08;MPU&#xff09;用于提升应用的…...

2024最新前端React面试题:JSX是什么,它和JS有什么区别

JSX是什么&#xff0c;它和JS有什么区别 回答思路&#xff1a;1.编写方式--->2.分别是什么&#xff1f;--->3.分别是怎么编译的&#xff1f;1.编写方式2.分别是什么&#xff1f;3.分别是怎么编译的&#xff1f; 回答思路&#xff1a;1.编写方式—>2.分别是什么&#x…...

3d导入模型怎样显示原本材质---模大狮模型网

要在导入3D模型时保留原本的材质&#xff0c;您可以尝试以下方法&#xff1a; 导入前检查文件格式&#xff1a;确保您所使用的3D软件支持导入模型的文件格式。不同的软件对文件格式的支持有所差异&#xff0c;选择正确的文件格式可以更好地保留原始材质。 使用正确的材质库&am…...

web前端开发网页制作html/css结课作业

效果图展示&#xff1a; 注意事项&#xff1a; 引用JQuery文件地址和图片地址要更换一下。 百度网盘链接&#xff1a; http://链接&#xff1a;https://pan.baidu.com/s/1wYkmLr7csjBwQY6GmlYm4Q?pwd4332 提取码&#xff1a;4332 html界面展示&#xff1a; main.css代码部…...

工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)

工业相机如何实现实时和本地Raw图像和Bitmap图像的保存和相互转换&#xff08;C#代码&#xff0c;UI界面版&#xff09; 工业相机图像格式工业相机实现Raw图像和Bitmap图像的保存和转换的技术背景在相机SDK中获取图像转换图像的代码分析工业相机回调函数里保存Bitmap图像数据工…...

C++初阶------------------入门C++

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

深度学习核心技术与实践之自然语言处理篇

非书中全部内容&#xff0c;只是写了些自认为有收获的部分。 自然语言处理简介 NLP的难点 &#xff08;1&#xff09;语言有很多复杂的情况&#xff0c;比如歧义、省略、指代、重复、更正、倒序、反语等 &#xff08;2&#xff09;歧义至少有如下几种&#xff1a; …...

AI-ChatGPTCopilot

ChatGPT chatGPT免费网站列表&#xff1a;GitHub - LiLittleCat/awesome-free-chatgpt: &#x1f193;免费的 ChatGPT 镜像网站列表&#xff0c;持续更新。List of free ChatGPT mirror sites, continuously updated. Copilot 智能生成代码工具 安装步骤 - 登录 github&am…...

网络安全-真实ip获取伪造与隐藏挖掘

目录 真实ip获取应用层网络层网络连接TOAproxy protocol ip伪造应用层网络层TOA攻击proxy protocol 隐藏代理 挖掘代理多地ping历史DNS解析记录国外主机解析域名网站RSS订阅网络空间搜索引擎 总结参考 本篇文章学习一下如何服务如何获取真实ip&#xff0c;隐藏自己的ip&#xf…...

CMake入门教程【核心篇】添加子目录(add_subdirectory)

文章目录 1.概述2.添加子目录3.指定二进制目录4.排除子目录5.使用别名6.传递变量7.检查子目录是否存在 1.概述 add_subdirectory是 CMake 中的一个命令&#xff0c;用于向当前项目添加一个子目录。它的语法如下&#xff1a; #mermaid-svg-9zKJ3AvoVRln9hon {font-family:"…...

Prototype原型模式(对象创建)

原型模式&#xff1a;Prototype 链接&#xff1a;原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中&#xff0c;经常面临这“某些结构复杂的对象”的创建工作&am…...

[Redis实战]分布式锁

四、分布式锁 4.1 基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xf…...

SpingBoot的项目实战--模拟电商【2.登录】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.功能需求 二.代码编写 …...

http——https实现指南

第一部分&#xff1a;HTTPS安全证书简介 什么是HTTPS安全证书&#xff1f; 在网络通信中&#xff0c;HTTPS安全证书是一种由可信任的证书颁发机构&#xff08;CA&#xff09;签发的数字证书&#xff0c;用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…...

ROS仿真R2机器人之安装运行及MoveIt的介绍

R2(Robonaut 2)是NASA美国宇航局与GM通用联合推出的宇航人形机器人&#xff0c;能在国际空间站使用&#xff0c;可想而知其价格是非常昂贵&#xff0c;几百万美刀吧&#xff0c;还好NASA发布了一个R2机器人的Gazebo模型&#xff0c;使用模型就不需要花钱了&#xff0c;由于我们…...

【linux 多线程并发】线程属性设置与查看,绑定CPU,线程分离与可连接,避够多线程下的内存泄漏

线程属性设置 ​专栏内容&#xff1a; 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构&#xff0c;以及如何实现多机的数据库节点的多读多写&#xff0c;与传统主备&#xff0c;MPP的区别&#xff0c;技术难点的分析&#xff0c;数据元数据同步&#xff0c;多主节点的情况…...

70.乐理基础-打拍子-三连音

上一个内容&#xff1a;69.乐理基础-打拍子-大切分与变体-CSDN博客 62-66是总拍数为一拍的节奏型&#xff0c;一共有七个&#xff0c;68-69是两拍的节奏型。 三连音说明&#xff1a; 1.三连音的总拍数可以是一拍、两拍、四拍。。。。 2.打拍子比较难&#xff0c;或许需要用V字…...

100天精通Python(实用脚本篇)——第111天:批量将PDF转Word文档(附上脚本代码)

文章目录 专栏导读1. 将PDF转Word文档需求2. 模块安装3. 模块介绍4. 注意事项5. 完整代码实现6. 运行结果书籍推荐 专栏导读 &#x1f525;&#x1f525;本文已收录于《100天精通Python从入门到就业》&#xff1a;本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教…...

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者&#xff1a;ajun 导览 ONLYOFFICE 文档 是一款开源办公套件&#xff0c;其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式&#xff0c;包括 .docx、.xlsx 、.pptx 、pdf等文件格式&#xff0c;并支持…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…...

从 WasmEdge 运行环境读写 Rust Wasm 应用的时序数据

WebAssembly (Wasm) 正在成为一个广受欢迎的编译目标&#xff0c;帮助开发者构建可迁移平台的应用。最近 Greptime 和 WasmEdge 协作&#xff0c;支持了在 WasmEdge 平台上的 Wasm 应用通过 MySQL 协议读写 GreptimeDB 中的时序数据。 什么是 WebAssembly WebAssembly 是一种…...

算法训练营Day34(贪心算法)

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 秒了 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last -1;for(int i 0;i<…...

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…...

ARM1.2作业

实现数码管不同位显示不同的数字 spi.h #ifndef __SPI_H__ #define __SPI_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"//MOSI对应的引脚输入高低电平的信号PE14 #define MOSI_OUTPUT_H() do{GPIOE->ODR | (0x1 << 14);}whi…...

【算法专题】递归算法

递归 递归1. 汉诺塔问题2. 合并两个有序链表3. 反转链表4. 两两交换链表中的节点5. Pow(x, n) --- 快速幂 递归 在解决⼀个规模为 n 的问题时&#xff0c;如果满足以下条件&#xff0c;我们可以使用递归来解决&#xff1a; 问题可以被划分为规模更小的子问题&#xff0c;并且…...