【PTA|函数题|期末复习|PART 2】数据类型(二)&函数(一)

目录

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:


6-6 使用函数统计指定数字的个数

本题要求实现一个统计整数中指定数字的个数的简单函数。

函数接口定义:

int CountDigit( int number, int digit );

其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回numberdigit出现的次数。

裁判测试程序样例:

#include 

int CountDigit( int number, int digit );
    
int main()
{
    int number, digit;

    scanf("%d %d", &number, &digit);
    printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));
    
    return 0;
}

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

输入样例:

-21252 2

输出样例:

Number of digit 2 in -21252: 3

编译器:GCC

代码


int CountDigit(int number, int digit)
{
    int count = 0;

    if (number < 0)
    {
        number = -number;
    }

    if (number == 0 && digit == 0)
    {
        count = 1;
    }

    while (number != 0)
    {
        int lastNumber = number % 10;

        if (lastNumber == digit)
        {
            count++;
        }

        number /= 10;
    }
    return count;
}

6-7 使用函数输出一个整数的逆序数

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

函数接口定义:

int reverse( int number );

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

裁判测试程序样例:

#include 

int reverse( int number );
    
int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\n", reverse(n));

    return 0;
}

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

输入样例:

-12340

输出样例:

-4321

编译器:GCC

代码


int reverse( int number )
{
	int t = 0;
	do
	{
		t = t * 10 + number % 10;
		number /= 10;
	}while(number != 0);
	return t;
}

6-8 简单实现x的n次方

本题要求实现一个计算xn(n≥0)的函数。

函数接口定义:

double mypow( double x, int n );

函数mypow应返回xn次幂的值。题目保证结果在双精度范围内。

裁判测试程序样例:

#include 

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

编译器:GCC

代码


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

6-9 使用函数求1到10的阶乘和

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

函数接口定义:

double fact( int n );

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

裁判测试程序样例:

#include 

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

编译器:GCC

代码

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

你可能感兴趣的:(PTA,c语言)