首页 > 代码库 > c语言代码编程题汇总 :从键盘上输入一个整数n,输出斐波纳猰数列——自己打的代码

c语言代码编程题汇总 :从键盘上输入一个整数n,输出斐波纳猰数列——自己打的代码

从键盘上输入一个整数n,输出斐波纳猰数列

    程序代码如下:

 

 1 /*
 2     2017年3月5日10:35:17
 3     功能:n的阶乘采用的是递归方式实现
 4 */
 5 
 6 #include "stdio.h"
 7 long fun(int n)                                                    //注意此处的fun()是调用函数,两者之间没有空格
 8 { 
 9     if (n > 1)                                                     //此处跳出递归的条件是当n = 1时
10         return (n * fun(n -1));                                    //当n的值满足条件或n = 2时程序还会执行该条语句
11 
12     return 1;
13 }
14 
15 int main (void)
16 {
17     int n;
18     /*
19     while (1)
20     {
21         printf ("请从键盘中获取n的数值:\n");
22         scanf ("%d",&n);
23         if (n >= 0)
24             break;
25         else
26             printf ("负数是没有阶乘,请重新输入新的数值:\n");
27     }    
28     */
29     while (printf ("请从键盘中获取n的数值:\n"))                    //死循环,其目的是为了直至输入一个符合条件的值,
30     {
31             scanf ("%d",&n);                                    //在while()语句中非零(包括是一个表达式)为真,零为假
32             if (n >= 0)
33                 break;
34             else
35             printf("负数没有阶乘,请重新输入新的数值\n");
36     }
37     printf ("n! = %ld\n",fun(n));                                //此处要求按照按%ld的格式输出,主要是防止数据过大而导致数据溢出
38     
39     return 0;
40 }
41 /*    
42     总结:
43     ——————————————————————————————————————————
44     1、%d表示输入/出为整数
45        %ld表示输入/出为长整型
46     2、实数型
47        %f没有必要写成%lf,双精度、单精度输出控制符是一样的。
48        当然是double类型时,写成printf("%lf\n",x);也不错
49     3、在VC++6.0中显示的结果:
50         ———————————————————————————
51         请从键盘中获取n的数值:
52         6
53         n! = 720
54         ———————————————————————————
55     ——————————————————————————————————————————
56 */

 

  程序代码亮点归纳: 

 

 1 while (printf ("请从键盘中获取n的数值:\n"))                    //死循环,其目的是为了直至输入一个符合条件的值,
 2     {
 3             scanf ("%d",&n);                                    //在while()语句中非零(包括是一个表达式)为真,零为假
 4             if (n >= 0)
 5                 break;
 6             else
 7             printf("负数没有阶乘,请重新输入新的数值\n");
 8     }
 9     printf ("n! = %ld\n",fun(n));                                //此处要求按照按%ld的格式输出,主要是防止数据过大而导致数据溢出
10     

  

  分析:

    此部分的目的是为了获取到一个合法的数值,如果不合法,一直输到合法为止,合法时,想要跳出循环,此处采用的是break。

    注解:break语句是跳出当前的循环体,而continue语句则是结束本次循环。

 

c语言代码编程题汇总 :从键盘上输入一个整数n,输出斐波纳猰数列——自己打的代码