【例4.10】求s=1!+2!+3!+…+m!。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int n,m;
5 float g=1,s=0;
6 printf("m=");
7 scanf("%d",&m);
8 n=1;
9 while(n<=m)
10 {
11 g=g*n;
12 s=s+g;
13 n=n+1;
14 }
15 printf("s=%0.0f\n",s);
16 return 0;
17 }
程序结果如图4.13所示:
图4.13 例4.10程序结果图
【例题中关键问题说明】
(1)因最终计算的结果数值可能会较大,因此g、s两个变量均定义为float类型的变量,g的初始值应为1。
(2)因最终计算的结果为整数,在输出时没有输出s的小数部分。
【例4.11】编写一个程序,输出如下图案。
*(www.xing528.com)
* * *
* * * * *
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i,j,k;
5 for(i=1;i<=3;i++) //外层循环,控制输出的行数
6 {
7 for(j=1;j<=3-i;j++) //控制输出空格数的内层循环
8 printf("");
9 for(k=1;k<=2*i-1;k++) //控制输出星号数的内层循环
10 printf("*");
11 printf("\n"); //一行输出完后要换行
12 }
13 return 0;
14 }
程序结果如图4.14所示:
图4.14 例4.11程序结果图
【例题中关键问题说明】
(1)分析要输出的图案可知,需要输出3行,可以用一个外层循环控制输出的行数,而每一行的字符是由空格和星号组成,因此可以用两个内层循环分别控制每一行空格和星号的输出。
(2)输出每一行后要进行换行,所以在第11行中使用了“printf("\n");”语句实现换行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。