【C/PTA】函数专项练习(二)

news2024/9/21 0:44:31

本文结合PTA专项练习带领读者掌握函数,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

目录

    • 6-1 符号函数
    • 6-2 求排列数
    • 6-3 求一个大于10的n位整数w的后n-1位的数,并作为函数值返回。
    • 6-4 其右上三角(含主对角线)元素之和。
    • 6-5 字符串比较
    • 6-6 使用函数求素数和
    • 6-7 使用函数输出水仙花数

6-1 符号函数

本题要求实现符号函数sign(x)。
函数接口定义:

int sign( int x );

其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。
裁判测试程序样例:

#include <stdio.h>


int sign( int x );


int main()

{

    int x;


    scanf("%d", &x);

    printf("sign(%d) = %d\n", x, sign(x));

    

    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

sign(10) = 1

int sign( int x )
{
    if(x>0)
        return 1;
    else if(x==0)
        return 0;
    else
        return -1;
}

6-2 求排列数

本题要求实现一个计算阶乘的简单函数,使得可以利用该函数,根据公式Pnm​=(n−m)!n!​算出从n个不同元素中取出m个元素(0<m≤n)的排列数。

在这里插入图片描述

函数接口定义:

double fact( int n );

其中n是用户传入的参数,函数返回n的阶乘。
裁判测试程序样例:

#include <stdio.h>


double fact( int n );


int main(void)

{    

    int m, n;

    double result; 


    scanf("%d%d", &m, &n);

    if(m > 0 && n > 0 && m <= n){

        result = fact(n)/fact(n-m);

        printf("result = %.0f\n", result);    

    }


    return 0;

}


/* 请在这里填写答案 */

输入样例:

2 14

输出样例:

在这里给出相应的输出。例如:

result = 182

double fact( int n )
{
    double pow=1;
    for(int i=1;i<=n;i++)
    {
        pow*=i;
    }
    return pow;
}

6-3 求一个大于10的n位整数w的后n-1位的数,并作为函数值返回。

编写函数fun,其功能是:求一个大于10的n位整数w的后n-1位的数,并作为函数值返回。例如:当w=1234时,返回234。
函数接口定义:

在这里描述函数接口。例如:

int fun(int w);

在这里解释接口参数。例如:其中 w 是用户传入的参数。函数须返回 w 除最高位外的值。
裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:

#include <stdio.h>


int fun(int w);


int main()   

{  int m;

   scanf("%d", &m);

   printf("%d\n", fun(m));

   return 0;

}


/* 您的程序将被嵌入在这里 */

输入样例:

1234

输出样例:

234

int fun(int w)
{
	int s=w;
	int a[100],i=0;
	while(w>0)
	{
		a[i]=w%10;
		w/=10;
		i++;
	}//循环得到第一个数字
	
	
	int pow=1;
	for(int j=1;j<i;j++)
	{
		pow*=10;
	}
	int t=s-a[i-1]*pow;//总数减去第一个数字对应的值
	return t;
}

6-4 其右上三角(含主对角线)元素之和。

输入二维数组的所有元素,求二维数组右上三角(包括主对角线)元素之和。
函数接口定义:

在这里描述函数接口。例如:

int fun(int a[3][3]);

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:

#include <stdio.h>


int fun(int a[3][3]);


int main()

{   int i,j,s,x[3][3];;

   for(i=0;i<3;i++)

      for(j=0;j<3;j++)

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

   s=fun(x);

   printf("sum=%d\n",s);

   return 0;

}

/* 您的答案将被嵌入在这里 */

输入样例:

1 2 3 4 5 6 7 8 9

输出样例:

在这里填写相应的输出
sum=26

int fun(int a[3][3])
{
	int sum=0;
	for(int j=0;j<3;j++)
	sum+=a[0][j];
	for(int j=0;j<3;j++)
	sum+=a[j][2];
	sum-=a[0][2];
	sum+=a[1][1];
	
	return sum;
} 

6-5 字符串比较

函数fun的功能是比较两个字符串,如果s1=s2,则返回值0;如果s1>s2,则返回值1;如果s1<s2,则返回-1。
函数接口定义:

int fun(char a[],char b[]);

其中a、b是用户传入的参数。 函数比较两个字符串,如果a=b,则返回值0;如果a>b,则返回值1;如果a<b,则返回-1。
裁判测试程序样例:

#include "stdio.h"

#include "string.h"

int fun(char a[],char b[]);

int  main()

 {int t;

  char s1[40],s2[40];

  gets(s1);  gets(s2);

  t=fun(s1,s2);

  printf("%d\n",t);

  return 0;

 }



/* 请在这里填写答案 */

输入样例:

asd
fg

输出样例:

-1

int fun(char a[],char b[])
{
	int x=strcmp(a,b);
	if(x>0)
	return 1;
	else if(x==0)
	return 0;
	else
	return -1;
}

6-6 使用函数求素数和

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

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

int prime( int p );

int PrimeSum( int m, int n );

其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数m≤n。
裁判测试程序样例:

#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

int prime(int p)
{
	if(p<=1)
	return 0;// <0 0 1的数不是素数
	for(int i=2;i<p;i++)
	{
		if(p%i==0)
		return 0;
	}
	return 1;
}

int PrimeSum(int m,int n)
{
	int sum=0;
	for(int p=m;p<=n;p++)
	{
		if(prime(p))
		sum+=p;
	}
	return sum;
}

6-7 使用函数输出水仙花数

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。
函数接口定义:

int narcissistic( int number );

void PrintN( int m, int n );

函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。

函数PrintN则打印开区间(m, n)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。
裁判测试程序样例:

#include <stdio.h>


int narcissistic( int number );

void PrintN( int m, int n );

    

int main()

{

    int m, n;

  

    scanf("%d %d", &m, &n);

    if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);

    PrintN(m, n);

    if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

153 400

输出样例:

153 is a narcissistic number
370
371

int narcissistic(int number)
{
	int n=0,sum=0,s;
	int number1=number,number2=number;
	
	
	while(number1>0)
	{
		number1/=10;
		n++;
	}//计算位数
	
	
	while(number2!=0)
	{//计算幂之和
		s=number2%10;
		int temp=1;
		for(int i=0;i<n;i++)
		{
			temp*=s;
		}
		sum+=temp;
		number2/=10;
	}
	
	if(sum==number)
	return 1;
	else
	return 0;
}

void PrintN(int m,int n)
{
	for(int i=m+1;i<n;i++)
	{
		if(narcissistic(i))
		printf("%d\n",i);
	}
}

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

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

相关文章

基于Qt中操作MySQL数据库示例

# 一、安装驱动 ##(1)安装 在Qt中操作MySQL数据库首先要安装mysql的驱动文件,将MySQL下的libmusql.dll文件复制到Qt的安装路径下的bin文件夹下即可。 直接将libmysql.dll文件粘贴到此文件夹中。 ## (2)验证驱动是否安装成功 复制成功之后来测试一下驱动程序是否安装成功…

PHPmail 发送邮件错误 550 的原因是什么?

电子邮件错误消息链接到简单邮件传输协议 (SMTP)&#xff0c;这是一组发送和接收电子邮件的标准化规则。因此&#xff0c;它也称为 SMTP 550 错误代码。在某些情况下&#xff0c;电子邮件错误 550 是由收件人一方的问题引起的。 以下是电子邮件错误 550 的一些可能原因&#x…

Virtual安装centos后,xshell连接centos 测试及遇到的坑

首先来一张官方的图--各种网络模式对应的连接状况&#xff1a; 1. 网络使用Host-Only模式动态分配IP&#xff0c;点确定后&#xff0c;centos 上运行 system restart network &#xff0c;使用ifconfig查看新的ip&#xff0c;XShell可以直接连上centos&#xff0c; 但是由于使用…

Java贪吃蛇小游戏

Java贪吃蛇小游戏 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.LinkedList; import java.util.Random;publi…

《opencv实用探索·一》QT+opencv实现图片拼接和Mat转QImage

本文利用opencv实现了几个好用的功能&#xff0c;包含两个文件&#xff0c;如下&#xff1a; 源码放在文章末尾 imageProcessing类包含三个功能&#xff1a; 1、图像拼接 cv::Mat imageMosaic(cv::Mat mat1, cv::Mat mat2, MosaicMode mosaicMode);mat1和mat2为两个待拼接的…

如何实现MATLAB与Simulink的数据交互

参考链接&#xff1a;如何实现MATLAB与Simulink的数据交互 MATLAB是一款强大的数学计算软件&#xff0c;Simulink则是一种基于模型的多域仿真平台&#xff0c;常用于工程和科学领域中的系统设计、控制设计和信号处理等方面。MATLAB和Simulink都是MathWorks公司的产品&#xff0…

数环通让小红书实现对接多应用,小红书如何自动获取售后详情

小红书是年轻人生活方式、社交及电商的平台&#xff0c;包括UGC模式的购物分享社区&#xff0c;以及电商的"福利社"&#xff0c;用户通过线上分享消费体验&#xff0c;引发社区互动&#xff0c;推动其他用户去到线下消费。 数环通将小红书和多应用连接打通&#xff0…

你听说过“消费多少返利多少的”模式吗?

今天分享一个新的销售套路&#xff0c;看懂套路奋斗节约3年&#xff0c;你听说过“消费多少返利多少的”模式吗&#xff1f; 消费报销模式就是消费者在平台的消费&#xff0c;根据贡献度和活跃度平台去把之前消费的模式&#xff0c;给你返本了甚至还额外给你补贴奖励&#xff…

buildadmin+tp8表格操作(9)预设的表格渲染

buildadmin中&#xff0c;为我们预设了很多 单元格的渲染方式&#xff0c;我们在使用的时候&#xff0c;只需要在定义中写好预设的名称就可以了 当我们使用的时候&#xff0c;我们只需要添加相应的名称就可以了 以下就是相应的效果 这些效果其实我们也有其它的方法来实现&a…

trzsz支持文件拖动到终端进行上传,类似lrzsz

考虑到 LapTop -> Host 1 -> Host 2 -> Docker -> TMUX&#xff0c;使用scp或sftp命令不方便&#xff1b;使用rz和sz命令就会方便很多&#xff0c;但是却又与 TMUX 不兼容&#xff08;备注&#xff1a;Tmux是一个终端复用工具&#xff0c;允许用户在一个终端窗口中…

袋鼠云联合浙工贸“数字孪生产教融合实践中心”正式授牌成立!

2023年10月26日&#xff0c;杭州玳数科技有限公司&#xff08;袋鼠云&#xff09;与浙江工贸技术职业学院正式成立“数字孪生产教融合实践中心”&#xff0c;并完成授牌仪式。 人工智能学院副院长章增优主持会议&#xff0c;学院党总支书记徐登喜、院长赵秀芝、专业主任潘益婷、…

2023Linux常见命令手册

目录 文件命令 文件和目录命令 文件的权限命令 文件搜索命令 进程命令 查看进程命令 关闭进程命令 用户和群组命令 网络命令 firewall-cmd 网络应用命令 高级网络命令 网络测试命令 网络安全命令 网络配置命令 软件管理命令 系统信息命令 vi编辑器 关机命令…

LeetCode977.有序数组的平方(双指针法、暴力法、列表推导式)

LeetCode977.有序数组的平方 1.问题描述2.解题思路3.代码4.知识点 1.问题描述 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-1,0,3,10] …

达索系统3DEXPERIENCE云端设计新体验

云是现代生活中必不可少的工具&#xff0c;在云端进行数据传输避免了传统的文件传输方式&#xff0c;更加方便快捷&#xff0c;节约了工作时间。 01 云端平台升级 在日常工作中有什么独特优势 在我们的生活工作中&#xff0c;云越来越多被提起&#xff0c;比如云计算、云服务…

IDEA运行thymeleaf的html文件打开端口为63342且连不上数据库

这边贴apple.html代码 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>User List</title> </head> <body> <h1>User List</h1> <table&…

CSDN每日一题学习训练——Python版(N皇后 II、买卖股票的最佳时机 II、编程通过键盘输入每一位运动员)

版本说明 当前版本号[20231120]。 版本修改说明20231120初版 目录 文章目录 版本说明目录N皇后 II题目解题思路代码思路参考代码 买卖股票的最佳时机 II题目解题思路代码思路参考代码 编程通过键盘输入每一位运动员题目解题思路代码思路参考代码 N皇后 II 题目 n 皇后问题…

Nginx - 本机读取服务器图像、视频

目录 一.引言 二.安装 Nginx 1.安装 By apt 2.安装 By 官网 三.配置 Nginx 1.Linux 机器配置 2.重启 Nginx 服务 3.本机查看机器文件 四.总结 一.引言 前面介绍了 GFP-GAN、PNG2GIF、GIF2PNG 等操作&#xff0c;我们生成的 video、gif、png 等形式的文件都存储在 lin…

【Qt开发流程】之程序主窗口

描述 就目前的应用程序而言&#xff0c;一般包含菜单栏、工具栏、状态栏、中央区域等。 qt窗口部件类图如下&#xff1a; 一个主窗口提供了一个构建应用程序用户界面的框架。 Qt有QMainWindow及其相关类来管理主窗口。 QMainWindow有自己的布局&#xff0c;可以向其中添加QTo…

苹果(Apple)公司的新产品开发流程(一)

目录 简介 ANPP CSDN学院推荐 作者简介 简介 苹果这家企业给人的长期印象就是颠覆和创新。 而流程跟创新似乎是完全不搭边的两个平行线&#xff1a; 流程是一个做事的标准&#xff0c;定义了权力的边界&#xff0c;对应人员按章办事&#xff1b;而创新的主旋律是发散&am…

IDEA前端thymeleaf只显示部分数据库问题

只显示int类型的number&#xff0c;不显示string类型的price和weight 先看一下apple.html <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>User List</title> </…