C语言编程 输入N 求N的阶乘

编写一个循环程序,输入 N 值,输出 N 的阶乘。关于循环程序怎么编写,可以参考教材第六章P123的内容。注意整型数的表示范围,如果当输入的 N 比较大时,例如 N 等于 20 时,输出N is too big

输入一个正整数n,输出n!*/#include <stdio.h>                      //编译预处理命令

int factorial(int n);                   //函数声明

int main(int argc, char const *argv[])  //主函数

{    

int n;                              //变量定义

   

scanf("%d", &n);                    //输入一个整数
   

printf("%d\n", factorial(n));       //调用函数计算阶乘

  

return 0;
}int factorial(int n)                    //定义计算n!的函数

{   

int fact = 1;    

for (int i = 1; i <= n; ++i)
   

{        

fact = fact*i;
   

}

return fact; 

}

拓展资料

特点

1. C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2.C语言是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。

4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-19

/*求阶乘问题。
输入一个正整数n,输出n!

*/#include <stdio.h>                      //编译预处理命令

int factorial(int n);                   //函数声明

int main(int argc, char const *argv[])  //主函数

{    int n;                              //变量定义

scanf("%d", &n);                    //输入一个整数

if (n>=20){

printf("N is too big")

}

printf("%d\n", factorial(n));       //调用函数计算阶乘

return 0;


}int factorial(int n)                    //定义计算n!的函数

{    int fact = 1;    for (int i = 1; i <= n; ++i)


{


fact = fact*i;


}    

return fact;


}

代码截图:

参考资料:百度百科-网页链接

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

本回答被网友采纳
第2个回答  2018-07-25

您好,我们下构思下程序的基础,

    让用户自定义输入一个数作为阶乘数,

    当超过20时,输出“N is too big”.

我们需要用到IF函数,以下为详细过程。

#include<iostream>

using namespace std;

int main()

{

int n, s=1;

cin >> n;

for (int i = 1; i <= n; i++)

{

s = s * i;

}

if (n > 20)

cout << "N is too big" << endl;

else

cout <<n<<"的阶乘是"<<s << endl;

return 0;

}

本回答被网友采纳
第3个回答  2015-12-19

思路:所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可。

参考代码:

#include "stdio.h" 
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积 
s=s*i;
printf("%d\n",s);
return 0;
}
/*
运行结果:(例如求5的阶乘) 
5
120
*/

第4个回答  2013-11-10
#include <stdio.h>void main(void)
{ int n,i,p=1;
printf("请输入一个整数:");
scanf("%d",&n);
if(n>13)printf("n is to big\n");
else
{
for(i=2;i<=n;i++)
p*=i;
printf("%d\n",p);
}}注意如果是32位版本,int是+- 21亿左右的范围,最大只能求13的阶乘
相似回答