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

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

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

目录

    • 6-1 输出星期名
    • 6-2 三整数最大值
    • 6-3 数据排序
    • 6-4 多项式求值

6-1 输出星期名

请编写函数,根据星期数输出对应的星期名。
函数原型

void ShowDayWeek(int dow);

说明:参数 dow 为星期数。若 dow 在 0 ~ 6 范围内,则输出“日”、“一”、“二”、…、“六”,否则不输出任何信息。

星期值 	星期名
0123456

裁判程序

#include <stdio.h>void ShowDayWeek(int dow);int main(){int w;scanf("%d", &w);ShowDayWeek(w);putchar('\n');return 0;}/* 你提交的代码将被嵌在这里 */

输入样例1

3

输出样例1

输入样例2

9

输出样例2

//switch语句实现即可
void ShowDayWeek(int dow)
{switch(dow){case 0:printf("日");break;case 1:printf("一");break;case 2:printf("二");break;case 3:printf("三");break;case 4:printf("四");break;case 5:printf("五");break;case 6:printf("六");break;default:;}
}

6-2 三整数最大值

请编写函数,求三个整数的最大值。
函数原型

int IntMax3(int x, int y, int z);

说明:参数 x、y 和 z 为三个整数,函数值为三个整数中的最大值。
裁判程序

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

输入样例

15 36 -27

输出样例

36

//嵌套即可
int IntMax3(int x,int y,int z)
{int max=(x>y?x:y)>z?(x>y?x:y):zreturn max;
}

6-3 数据排序

输入n(<10)个整数,用任一排序算法按从小到大排序后输出。
函数接口定义:

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

void  fun(int a[], int  n);

裁判测试程序样例:

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

#include <stdio.h>void  fun(int a[], int  n);int main(){int i,a[10],n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);fun(a,n);for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n");return 0;}/* 请在这里填写答案 */

输入格式:先输入n值,再输入要排序的n个数据。
输入样例:

6
3 5 4 6 2 1

输出样例:

1 2 3 4 5 6

//冒泡排序即可
void fun(int a[],int n)
{for(int i=0;i<n-1;i++){for(int j=0;j<n-1-i;j++){if(a[j]>a[j+1]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}
}

6-4 多项式求值

本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式f(x)=∑i=0~n​(a[i]x^i) 在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

double f(int n,double a[],double x)
{double pow=1,sum=0;for(int i=0;i<=n;i++)//先计算x的i次方{if(i==0)pow=1;elsepow*=x;sum+=a[i]*pow;}return sum;}
http://www.lryc.cn/news/239221.html

相关文章:

  • SUDS: Scalable Urban Dynamic Scenes
  • 蓝桥杯算法双周赛心得——迷宫逃脱(记忆化搜索)
  • nodejs+vue线上生活超市购物商城系统w2c42
  • 飞翔的小鸟
  • 浅析OKR的敏捷性
  • Linux+qt:创建动态库so,以及如何使用(详细步骤)
  • 如何将Docker的构建时间减少40%
  • 二分查找——经典题目合集
  • 在Jupyter Lab中使用多个环境,及魔法命令简介
  • 知虾数据软件:电商人必备知虾数据软件,轻松掌握市场趋势
  • c语言中*p1++和p1++有啥区别
  • 2
  • SELinux零知识学习二十二、SELinux策略语言之类型强制(7)
  • cadence layout lvs时出现error
  • python练习题(markdown中的60道题)
  • 【JavaSE】-4-单层循环结构
  • 12、人工智能、机器学习、深度学习的关系
  • webpack external 详解
  • 代码混淆不再愁:一篇掌握核心技巧
  • 华为云IoT与OpenHarmony深度协同,加速设备上鸿即上云【云驻共创】
  • 深入浅出 Linux 中的 ARM IOMMU SMMU I
  • 关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询
  • 数据仓库架构之详解Kappa和Lambda
  • Banana Pi BPI-R3 Mini 开源路由器,也能拍出艺术美感
  • Django高级之-分页器
  • Vue-报错No “exports“ main defined in xx
  • EL-input添加双击或者单击事件
  • OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域
  • Three.js相机模拟
  • Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性