C程序设计

PTA-2017实验2.4 函数

2017-10-10  本文已影响0人  林之禾

6-1 简单实现x的n次方(10 分)
本题要求实现一个计算xn(n≥0)的函数。
函数接口定义:
double mypow( double x, int n );
函数mypow应返回x的n次幂的值。题目保证结果在双精度范围内。

裁判测试程序样例:

#include <stdio.h>

double mypow( double x, int n );

int main()
{
    double x;
    int n;

    scanf("%lf %d", &x, &n);
    printf("%f\n", mypow(x, n));

    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

0.24 4

输出样例:

0.003318

程序源码

double mypow(double x, int n){
    double num;
    num=1;
    for(int i=1;i<=n;i++){
        num *=x;
    }
    return num;
}

6-2 使用函数求1到10的阶乘和(10 分)
本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+⋯+10!的值。

函数接口定义:

double fact( int n );
其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。

裁判测试程序样例:

#include <stdio.h>

double fact( int n );

int main(void)
{    
    int i;
    double sum; 

    sum = 0; 
    for(i = 1; i <= 10; i++) 
        sum = sum + fact(i); 

    printf("1!+2!+...+10! = %f\n", sum); 
    return 0;
}

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

输入样例:

本题没有输入。

输出样例:

1!+2!+...+10! = 4037913.000000

程序源码

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

7-1 生成3的乘方表(15 分)
输入一个非负整数n,生成一张3的乘方表,输出3​0~3​n
​​ 的值。可调用幂函数计算3的乘方。

输入格式:

输入在一行中给出一个非负整数n。

输出格式:

按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

3

输出样例:

pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27

程序源码

#include <stdio.h>
#include <math.h>

int main()
{
   int  n,num;
   scanf("%d",&n);
    for(int i=0;i<=n;i++){
        num = pow(3,i);
        printf("pow(3,%d) = %d\n",i,num);
      }
  
    return 0;
}

7-2 求平方根序列前N项和(15 分)
本题要求编写程序,计算平方根序列√1 +√​2+√3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

10

输出样例:

sum = 22.47

程序源码

#include <stdio.h>
#include <math.h>

int main()
{
   int  n;
   double num;
   scanf("%d",&n);
   num=0;
    for(int i=0;i<=n;i++){
    num+=sqrt(i);   
  }
  printf("sum = %.2f",num);
    return 0;
}

7-3 求阶乘序列前N项和(15 分)
本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式:

输入在一行中给出一个不超过12的正整数N。

输出格式:

在一行中输出整数结果。

输入样例:

5

输出样例:

153

程序源码

#include <stdio.h>
#include <math.h>

int main()
{
   int i,n,j,sum,num;
   scanf("%d",&n);
   num=1;
   for(i=1;i<=n;i++){
    for(j=i;j<=i;j++){
            num *=j;
       }
       sum+=num;
   }
   printf("%d",sum);
    return 0;
}


上一篇 下一篇

猜你喜欢

热点阅读