湖北理工学院c语言程序设计 实验3答案 下载本文

实验三 循环结构程序设计

实验课程名:C语言程序设计

专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师:

一、实验目的和要求 1. 熟悉掌握用for语句,while语句和do_while语句实现循环的方法。 2. 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 二、实验内容 1、编写程序,随机输入15个整数,可以是正数、负数和零,计算它们的和、所有正数之和及所有负数之和,分类统计正数、负数以及零的个数,并分别打印出来。 解答: (1)源代码: #include int main() { int a[14],i,sum1=0,sum2=0,sum3=0,x=0,y=0,z=0; printf(\请输入十五个整数:\ for(i=0;i<15;i++) { scanf(\ sum1=sum1+a[i]; if(a[i]>0) { sum2=sum2+a[i]; x=x+1; } if(a[i]==0) z=z+1; if(a[i]<0) { sum3=sum3+a[i]; y=y+1; } } printf(\所有数的和为%d\\n\ printf(\所有正数的和为%d\\n\ printf(\所有负数的和为%d\\n\ printf(\其中有%d个正数\\n\

( printf(\其中有%d个0\\n\ printf(\其中有%d个负数\\n\ return 0; } 2)运行结果: (3)运行结果分析:运行成功。 2、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,… 。求出这个数列的前20项之和。 解答: (1)源代码: #include int main() { float a=1,b=2,c,sum=0; int i; printf(\,3/2,5/3,8/5,13/8,21/13,…前二十项的和为\ for(i=1;i<21;i++) { sum=sum+b/a; c=a+b; a=b; b=c; }

( printf(\ return 0; } 2)运行结果: (3)运行结果分析:运行成功 3、编写程序,求 1!+ 2!+ 3!+ …+N!的值,N的值由键盘输入。 解答: (1)源代码: #include int main() { int a,c,i,s,sum; s=1; sum=0; printf(\!+ 2!+ 3!+ …+N!\\n\ printf(\请输入N的值\\n\ scanf(\ for(i=1;i<=c;i++) { for(a=1;a<=i;a++) { s=s*a;

} sum=sum+s; s=1; } printf(\其结果为%d\\n\ return 0; } (2)运行结果: (3)运行结果分析:运行成功。 4、编程序按下列公式计算 e 的值(精度为 1e-6): e=1+1/1!+1/2!+1/3!+…+1/n! 解答: (1)源代码: #include int main() { int a,c,i; float sum,s; s=1; sum=0; for(c=1;1/s>=1e-6;c++) {

s=s*c; } s=1; for(i=1;i<=c;i++) { for(a=1;a int main() {