求阶乘
我想了一下,不考虑c语言的常识性问题,我这样编写一个求10以内的阶乘代码可不可取,反正编译运行的结果是不对的
#include<stdio.h>
int main()
{
int i,n,j;
printf("请输入要求的值:\n");
scanf("%d",&n,&j);
j = 1;
n = i;
i == 1 ;
while(i<=n)
{
j = j*i;
i++;
}
printf("factorial of %d is: %.2f.\n ",n,j);
return 0;
} 第8行,去掉,&j
第12行,i=1
第19行,%.2f换成%d。
手机打的,不知道格式会不会乱 本帖最后由 jackz007 于 2019-5-21 23:28 编辑
还是使用 for 循环比较有优势一些
#include <stdio.h>
int main()
{
unsigned i , j , n ;
printf("请输入要求的值:\n") ;
scanf("%d" , & n) ;
if(n > 0) {
for(i = 1 , j = 1 ; i <= n ; i ++) j = j * i ;
printf("factorial of %d is: %d.\n " , n , j) ;
}
}
有点迷,看不懂你上面的代码
#include <stdio.h>
void main()
{
int n, Nn = 1;
printf("请输入要求的值:\n");
scanf("%d", &n);
/*for循环求阶乘*/
if (n >= 0)
{
if ((n == 0) || (n == 1))
{
Nn = 1;
}
else
{
for (int i = 1; i <= n; i++)
{
Nn = Nn * i;
}
}
printf("for循环求阶乘:\nn! = %ld", Nn);
}
else
{
printf("ERROR:正负错误\n");
}
} jackz007 发表于 2019-5-21 23:26
还是使用 for 循环比较有优势一些
后来我想了想,用了两种方式
(1)#include<stdio.h>
int main()
{
int i,n,j;
printf("请输入要求的值:\n");
scanf("%d",&n);
i = 1;
j = 1;
while(i<=n)
{
j = j*i;
i++;
}
printf("factorial of %d is: %d\n ",n,j);
return 0;
}
(2)
#include<stdio.h>
int main()
{
int i ,n ;
double sum = 1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum = sum*i;
printf("%d!=%.1f",n,sum);
printf("\n");
return 0;
}
第一种是纯属自己琢磨出来的 pheron 发表于 2019-5-21 23:01
第8行,去掉,&j
第12行,i=1
第19行,%.2f换成%d。
谢谢,是这样的呢 bin554385863 发表于 2019-5-21 23:29
有点迷,看不懂你上面的代码
谢谢,这个代码也挺好 jackz007 发表于 2019-5-21 23:26
还是使用 for 循环比较有优势一些
g]刚刚又学了一种阶乘求法,感觉这个意思要更明了,嘻嘻{:5_109:}
#include<stdio.h>
int main()
{
int cont;
do
{
int a , S = 1 , b=1 ;
printf("请输入要求阶乘的数:"); scanf("%d",&a);
do
{
S = S*b;
b = b+1;
} while (b <=a);
printf("%d的阶乘为:%d\n",a,S);
puts("是否继续?");
printf("【Yes...0/No...9】\n");
scanf("%d",&cont);
} while ( cont == 0);
return 0;
} 本帖最后由 jackz007 于 2019-5-30 23:05 编辑
差不多所有使用 do ... while 循环的地方,都可以用 for 循环取代,用 for 可以在循环开始前对多个变量进行初始化,单次循环结束~开始交接的时候,还有机会调整多个变量的值,当然,还有循环条件的判断,所有的这些都可以写在同一个括号里面,只要用分号、逗号把它们隔开就可以了,和 do ...while 语句相比,代码会简洁许多。 嗯呐,刚刚开始学,还望大佬,以后多多指教 jackz007 发表于 2019-5-30 22:55
用 for 循环可以在循环开始前对多个变量进行初始化,单次循环结束~开始交接的时候,还有机会调整多个 ...
才刚学到变量初始化
页:
[1]