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

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

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


6-1 输出星期名

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

函数原型

void ShowDayWeek(int dow);

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

星期值   星期名
0   日
1   一
2   二
3   三
4   四
5   五
6   六

裁判程序

#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):z
  return 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 10
double 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;
    else
    pow*=x;
  sum+=a[i]*pow;
  }
  return sum;
}
目录
相关文章
|
4月前
|
机器学习/深度学习 C语言
【C/PTA】选择结构专项练习
【C/PTA】选择结构专项练习
95 0
|
4月前
|
C++
【PTA】​L1-079 天梯赛的善良​ (C++)
【PTA】​L1-079 天梯赛的善良​ (C++)
91 0
【PTA】​L1-079 天梯赛的善良​ (C++)
|
4月前
|
机器学习/深度学习 C语言
【C/PTA】循环结构专项练习(选择+填空)
【C/PTA】循环结构专项练习(选择+填空)
148 0
|
4月前
【C/PTA】函数专项练习(三)
【C/PTA】函数专项练习(三)
43 0
|
4月前
【C/PTA】函数专项练习(四)
【C/PTA】函数专项练习(四)
80 0
|
4月前
|
存储 人工智能 搜索推荐
【C/PTA】函数专项练习(一)
【C/PTA】函数专项练习(一)
43 0
|
4月前
|
Serverless
【C/PTA】函数专项练习(二)
【C/PTA】函数专项练习(二)
38 0
|
4月前
|
存储 搜索推荐
【C/PTA】指针专项练习(二)
【C/PTA】指针专项练习(二)
101 0
|
4月前
【C/PTA】指针专项练习(一)
【C/PTA】指针专项练习(一)
76 0
|
4月前
|
存储 搜索推荐 C语言
【C/PTA】结构体专项练习
【C/PTA】结构体专项练习
49 0