从键盘输入一个正整数n,计算并显示其阶乘值。
long fac(int k) //{ long result=1; // int i; for (i=2;i<=k;i++) // { result*=i; } return result; //}void main(){ int m; long s; // do { scanf("%d",&m); // } while (m<0); s=fac(m); printf("%d!=%ld",m,s);}头文件的部分省去了,修改的地方在代码中用//标出了
long fac(int k) //
{
long result=1; //
int i;
for (i=2;i<=k;i++) //
{
result*=i;
}
return result; //
}
void main()
{
int m;
long s; //
do
{
scanf("%d",&m); //
}
while (m<0);
s=fac(m);
printf("%d!=%ld",m,s);
}
头文件的部分省去了,修改的地方在代码中用//标出了。
扩展资料:
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
给“0!”下定义只是为了相关公式的表述及运算更方便。
参考资料来源:百度百科-阶乘
unsigned long long fact(int n);
int main(void)
{
int num;
printf(" 本机: ULLONG_MAX = %llu\n",ULLONG_MAX);
printf(" 请输入一个不大于20的正整数: ");
while(scanf("%d",&num) == 1)
{
if(num<0)
printf(" 不能为负数!\n");
else if(num>20)
printf(" 数据不能大于20!\n");
else
{
printf(" 计算 %2d! 的结果: %llu\n",num,fact(num));
printf("\n");
}
printf(" 请输入一个不大于20的正整数: ");
}
printf("\n 再见!\n");
return 0;
}
unsigned long long fact(int n)
{
unsigned long long ans;
for(ans=1;n>1;n--)
ans *=n;
return ans;
}
注意:printf(" 本机: ULLONG_MAX = %llu\n",ULLONG_MAX);
是检测本机可以容纳的最大无符号整数,所以n的阶乘不能超过此数值。
编译器必须满足c99规范。
#include <stdio.h>
float mi(float x,int n)
{int i;
float add=1;
for (i=1;i<=n;i++)
add*=x;
return add;
}
void main()
{int x,n,m;
scanf("%d %d",&x,&n);
m=mi(x,n);
printf("%d",m);
}
其中X是需要计算的数,n为幂次
main()
{ int n,i,x;
printf(\"please enter a number:\\n\");
scanf(\"%d\",&n);
for(i=1;i<n;i++)
x=n*i;
printf(\"%d!=%d\\n\",n,x);
} 我用的操作系统是 WIN2000 编译系统 TURBOC:2.0
本人只考虑 正确 其他都没顾虑
main()
{
int i,j,k=1;
scanf("%d",&i);
for(j=1;j<=i;j++)
k=k*j;
printf("%d",k);
}
我想这个可以了,你试试吧!
main()
{int i,n,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%d",sum);
}
从键盘输入一个正整数n,计算并显示其阶乘值。
printf(" 请输入一个不大于20的正整数: ");while(scanf("%d",&num) == 1){ if(num<0)printf(" 不能为负数!\\n");else if(num>20)printf(" 数据不能大于20!\\n");else { printf(" 计算 %2d! 的结果: %llu\\n",num,fact(num));printf("\\n");} printf(" 请输入一个...
从键盘任意输入一个正整数n(n<10),求fac=n!并输出fac的值
} printf("fac = %d\\n", fac);return 0;} 这里使用scanf函数从键盘输入一个正整数n,然后使用循环计算n的阶乘fac。循环中,从1到n依次乘上每个数,最终得到n的阶乘。最后,输出n和fac的值。运行程序后,输入一个正整数n,程序会计算n的阶乘并输出。
从键盘输入一个整数N,程序计算从1到N的平方和的值,并显示出结果。
你这个程序不能得到你想要的结果,不只是上面几位说的范围不够。首先b的类型要改成long表示长整形数据,取值范围为-2^31~2^31-1,应该够用了。你的循环语句while(a<=N){b=a*a;b+=b; a++;}问题很严重,你最后的输出结果应该是2*N*N,而不能得到题目要求的,因为没一个循环b都要被重新赋...
c语言~~~键盘输入正整数n,计算并输出 (下面的图片) 的值,输出结果保留...
include<stdio.h> int main(){ int n,i;double sum=0;printf("请输入n = ");scanf("%d",&n);for(i=1;i<=n;i++){ if(i%2) sum+=(double)1\/i;else sum-=(double)1\/i;} printf("结果为:%0.6lf\\n",sum);system("pause");return 0;} ...
编写程序,从键盘输入一个正整数n,n<=15,求n!并输出
include<stdio.h> int main(){ int n;scanf("%d",&n);int sum=n;while(--n)sum*=n;return !printf("%d\\n",sum);}
用C语言编写程序从键盘输入一个正整数数n,输出n!
要编写一个C语言程序,从键盘输入一个正整数n并计算其阶乘(n!),可以通过两种方法实现:递归和循环。首先,我们来看递归的方法:c include \/\/ 递归函数计算阶乘 int factorial(int n) { if (n <= 1)return 1;else return n * factorial(n - 1);} int main() { int n, result;printf(...
从键盘输入一个正整数n 计算该数各位数字之和 并能够将结果显示在标签中...
输入一个数之后, 先对它模 10 求个位,然后 n = n \/ 10,这样一步一步就可以了,不懂的,我再把源程序给你
编写C语言程序, 从键盘输入一个正整数N(N<=10),并输出
源程序如下:include <stdio.h> int main(){ int n,i,j,sum=1,t;scanf("%d", &n);for(i=1;i<=n;i++){ t=1;for(j=1;j<=i;j++){ t *= 2; \/\/每次计算2 ^ i 出来 } sum += t; \/\/sum加上算出来的2 ^ i } printf("%d\\n", sum);return 0;} ...
2、从键盘输入一个整数n(要求n在100和1000之间),计算并输出整数n的所有...
首先,使用 printf 函数提示用户输入一个整数 n,并使用 scanf 函数从键盘输入这个整数。然后,使用 while 循环检查 n 是否在 100 到 1000 之间,如果不在这个范围内,就提示用户重新输入一个整数。接下来,使用 for 循环遍历 1 到 n 之间的所有整数,判断它们是否是 n 的因子。如果是,就使用 ...
从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果
int n,P;P=1;scanf("%d",&n);for(i=1;i<n+1;i++){ P=P*i;} printf("%d",P);望采纳,谢谢~