例2-10:输入一个正整数n,生成一张2的乘方表,输出2的0次方到2的n次方的值,可以调用幂函数计算2的乘方。
#include <stdio.h>
#include <math.h>
int main()
{
int i, n;
double power;
printf("Enter n:");
scanf("%d", &n);
for (i = 0; i <= n; i++)
{
power = pow(2, i);
printf("pow(2,%d)=%.0f\n", i, power);
}
return 0;
}
例2-11:输入一个正整数n,生成一张阶乘表,输出0!到n!的值,要求定义和调用函数fact(n)计算n!,函数类型是double。
#include <stdio.h>
double fact(int n);
double fact(int n)
{
int i;
double product;
product=1;
for(i=1;i<=n;i++)
{
product=product*i;
}
return product;
}
int main()
{
int i,n;
double result;
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
result=fact(i);
printf("%d!=%0.f\n",i,result);
}
return 0;
}
练习2-17:输入一个正整数n,生成一张3的乘方表,输出3的0次方到3的n次方的值,可以调用幂函数计算2的乘方,试编写相应程序。
#include <stdio.h>
#include <math.h>
int main()
{
int i, n;
double power;
printf("Enter n:");
scanf("%d", &n);
for (i = 0; i <= n; i++)
{
power = pow(3, i);
printf("pow(3,%d)=%.0f\n", i, power);
}
return 0;
}
练习2-18,求组合数:根据下列公式可以算出从n个不同元素中取出m个元素(m≤n)的组合数。输入两个正整数m和n(m≤n),计算并输出组合数,要求定义和调用函数fact(n)就算n!,函数类型是double。试编写相应程序。
#include <stdio.h>
double fact(int n); //声明自定义函数
double fact(int n) //定义自定义函数
{
int i;
double product; //使用product存放结果
product = 1; //设置初值为1
for (i = 1; i <= n; i++) //计算n!
{
product = product * i;
}
return product;
}
int main()
{
int n, m;
double result1, result2, result3, C;
printf("Enter n:"); //输入提示
scanf("%d", &n);
printf("Enter m:"); //输入提示
scanf("%d", &m);
if (m <= n) //判断n和m的大小
{
result1 = fact(n); //调用函数计算n!
printf("n!=%0.f\n", result1);
result2 = fact(m); //调用函数计算m!
printf("m!=%0.f\n", result2);
result3 = fact(n - m); //调用函数计算(n-m)!
printf("(n-m)!=%0.f\n", result3);
C = result1 / (result2 * result3); //计算C的值
printf("C=%0.f", C);
}
else
{
printf("Invalid value");
}
return 0;
}