6-6 使用函数统计指定数字的个数
本题要求实现一个统计整数中指定数字的个数的简单函数。
函数接口定义:
int CountDigit( int number, int digit );
其中number
是不超过长整型的整数,digit
为[0, 9]区间内的整数。函数CountDigit
应返回number
中digit
出现的次数。
裁判测试程序样例:
#include <stdio.h>
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 <stdio.h>
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
应返回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
编译器: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 <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
编译器:GCC
代码
double fact( int n )
{
int i,r=1;
for(i=1;i<=n;i++)
{
r=r*i;
}
return r;
}